Dit is een klassiek geval van veel-op-veel, en daarvoor heb je een derde tabel nodig tussen Cursus en Student. Het schema ziet er ongeveer zo uit:
Course
tabel heeft kolommen ("course_id", "course_name")
Student_course
tabel heeft kolommen ("student_id", "course_id");
Student
tabel als kolommen ("student_id", "student_name")
De tabel Student_course heeft beperkingen voor externe sleutels voor zowel studenten- als cursustabellen.
Voorbeeldgegevens:
Cursus:
id | name
------------------
1 | Maths
2 | English
3 | Science
Student
id | name
---------------
1 | Tom
2 | Dick
3 | Harry
Student_cursus
student_id | course_id
------------------------
1 | 1
1 | 2
2 | 1
3 | 3
In dit voorbeeld zit student 1 (Tom) in cursus 1 en 2 (wiskunde, Engels),
Student 2 (Dick) zit alleen op cursus 1 (wiskunde)
Student 3 (Harry) zit alleen op cursus 3 (Science)