Jest to klasyczny przypadek wielu do wielu i do tego będziesz potrzebować trzeciej tabeli między kursem a uczniem. Schemat będzie wyglądał mniej więcej tak:
Course
tabela zawiera kolumny ("identyfikator_kursu", "nazwa_kursu")
Student_course
tabela ma kolumny ("student_id", "course_id");
Student
tabela jako kolumny ("identyfikator_studenta", "nazwa_studenta")
Tabela Student_course ma ograniczenia klucza obcego zarówno dla tabeli uczniów, jak i kursów.
Przykładowe dane:
Kurs:
id | name
------------------
1 | Maths
2 | English
3 | Science
Uczeń
id | name
---------------
1 | Tom
2 | Dick
3 | Harry
Kurs_studenta
student_id | course_id
------------------------
1 | 1
1 | 2
2 | 1
3 | 3
W tym przykładzie Uczeń 1 (Tomek) jest na kursach 1 i 2 (Matematyka, Angielski),
Uczeń 2 (Dick) jest tylko na kursie 1 (matematyka)
Uczeń 3 (Harry) jest tylko na kursie 3 (Nauka)