Tabelka WYKŁADOWCY nie miała sensu kiedy prezentowała tylko jedną kolumnę z legitymacją, jeżeli rozbudowujesz ją o dodatkowe pola, to jej istnienie nabiera sensu, a wręcz jest wskazane
Naprowadzę Cię trochę:
1. Spróbuj zrobić taką tabelkę
Zaloguj się, aby zobaczyć kod
2. Zakładając, że w tabeli STUDENCI chcesz trzymać nazwiska studentów, przerób ją na podobną do:
Zaloguj się, aby zobaczyć kod
[możesz, nie musisz, przyjąć nr indeksu jako klucz i zamiast id_studenta zostawić nr_indeksu - oczywiście wtedy nie jako pole autoincrement, ale np. INT]
3. Nie są dobre relacje w obecnym układzie, popatrz co się dzieje, kiedy chcesz "zapisać" grupę 100 studentów na jedne tylko zajęcia, które mają 20 terminów w ciągu semestru.
a. dodajesz 100 studentów do tabeli Studenci => OK,
b. dodajesz 20 terminów do tabeli terminy => OK,
c. dodajesz 100x20 = 2000 rekordów do tabeli ZAJĘCIA => NIE OK...
Raz, że niepotrzebnie 2000x powielasz wtedy takie dane jak czas_trwania_zajec, to w dodatek każdy taki rekord będzie miał inny numer ID_ZAJĘCIA, mimo, że dotyczą one tego samego zajęcia... Aby tą samą grupę zapisać na kolejny kurs, dochodzi dodatkowe 2000 rekordów etc.
Najlepiej by było gdybyś doprowadził tabelę z zajęciami do takiej postaci, żeby nie powtarzały się rekordy jak dodajesz studentów i terminy, dzięki temu można zrezygnować z tabeli z nazwą zajęć. Ja bym ją widział mniej więcej tak:
Zaloguj się, aby zobaczyć kod
4. Tabla z terminami może zostać jak jest (choć osobiście bym tam dodał godzinę OD i DO, a zrezygnował z czasu trwania zajęć w tabli zajęć), niech zostanie:
Zaloguj się, aby zobaczyć kod
5. Teraz, żeby powiązać je razem, wypada stworzyć tabele dodatkowe, przykładowe nazwy:
5a. aby powiązać wykładowców z zajęciami i konkretnymi terminami:
Zaloguj się, aby zobaczyć kod
5b. aby "zapisać" studentów na zajęcia:
Zaloguj się, aby zobaczyć kod
====================
Jak teraz wygląda wprowadzanie danych do bazy jak przy poprzednim przykładzie?
- masz po jednym rekordzie dla każdego wykładowcy,
- masz po jednym rekordzie dla każdego zajęcia,
- masz po jednym rekordzie dla każdego studenta, łącznie 100 rekordów,
- masz po jednym rekordzie dla każdego terminu, łącznie 20 rekordów,
- masz 20 rekordów wiążących zajęcia z terminem w tabeli Terminy_zajec,
- masz 100 rekordów wiążących studentów z terminami zajęć w tabeli Zapisy_studentow
Łącznie: 120 rekordów zamiast 2000, i to tylko dla jednych zajęć.
Dzięki relacjom zapytaniem SQL jesteś w stanie złożyć je w całość, a dane nie powielają się, gdy nie muszą (chyba

).
Piszę z głowy i mogłem coś pominąć, ale generalnie zasadza jest zrozumiała, jeżeli nie, spróbuj stworzyć obrazek wg tego schematu, to może się rozjaśni...