Jak dla mnie najlepszym rozwiązaniem bazy danych dla planu lekcji jest następujący ( podaje tylko główne pola w tabelach, zawsze można każdą tabelę rozbudować )
Tabela :
przedmioty:
id - INT auto_increment,
nazwa - varchar
Tabela :
klasy:
id - INT auto_increment,
nazwa - varchar
Tabela :
nauczyciel:
id - INT auto_increment,
nazwisko - varchar,
imie - varchar
Tabela :
plan:
id - INT auto_increment,
id_przedmiot - INT ( klucz obcy ),
id_klasa - INT ( klucz obcy ),
id_nauczyciel - INT ( klucz obcy ),
dzien - INT ( np znacznik dnia ( np. 0-6 zwracany przez PHP ))
godzina - ( pole jak kto woli, albo int albo varchar do zapisu startu lekcji )
Można to jeszcze uzupełnić o tabelę łączącą nauczycieli z przedmiotami:
Tabela :
nauczyciel_przedmiot:
id - INT auto_increment,
id_przedmiot - INT (klucz obcy),
id_nauczyciel - INT (klucz obcy)
wtedy w tabeli
plan pola
id_przedmiot i
id_nauczyciel można zastąpić
id_nauczyciel_przedmiot.
Układ taki pozwala na pełną elastyczność zmian oraz rozszerzeń planu na więcej nauczycieli, przedmiotów i klas.
@Hazel skoro uważasz, że jedna tabela jest lepsza od wielu ... bo i tak obrabiasz w PHP ... to czas może zacząć sprawdzać jakie korzyści daje więcej tabel