Ciao,
se ho ben capito quello che vuoi fare, io lo imposterei in questo modo:
Tabella docenti
id docente
1 Docente_A
2 Docente_B
3 Docente_C
Tabella classi
id classe
1 1c
2 1d
3 5a
4 3a
5 4b
6 5e
Tabella disponibilita_docenti
id id_docente id_classe data_inizio data_fine
1 1 1 2019-09-09 08:00:00 2019-09-09 09:00:00
1 1 2 2019-09-09 09:00:00 2019-09-09 10:00:00
1 1 3 2019-09-09 12:00:00 2019-09-09 13:00:00
1 2 4 2019-09-09 08:00:00 2019-09-09 09:00:00
1 2 4 2019-09-09 11:00:00 2019-09-09 12:00:00
1 2 5 2019-09-09 12:00:00 2019-09-09 13:00:00
1 3 1 2019-09-09 08:00:00 2019-09-09 09:00:00
1 3 6 2019-09-09 14:00:00 2019-09-09 15:00:00
id_docente e id_classe sono chiave esterne
A questo punto recuperare i dati non è complicato, puoi usare una query ad esempio che estrae gli id dei docenti che non si trovano nella tabella_disponibilita (WHERE NOT IN) in un determinato orario, ossia i docenti liberi in quelle ore.