В дизайне реляционной базы данных вы обычно включаете «таблицу отношений», чтобы отслеживать это:
--------------
| Student |
--------------
| 1
|
| 0..*
--------------------
| Students_Lessons |
--------------------
| 0..*
|
| 1
--------------
| Lesson |
--------------
Таблица Student
имеет StudentID
в качестве первичного ключа, таблица Lesson
имеет LessonID
в качестве первичного ключа, а таблица Students_Lessons
содержит два столбца StudentID
и LessonID
, которые будут связывать студентов на уроки.
Как видно из схемы базы данных выше, каждая запись в таблице Student
может быть связана с нулем или несколькими записями в таблице Students_Lessons
. То же самое касается таблицы Lesson
; каждая запись может быть связана с нулем или более записей в таблице Students_Lessons
. Однако каждая запись в таблице Students_Lessons
должна быть связана ровно с одной записью в Student
и одной записью в Lesson
.
Если каждый студент может посещать каждый урок только один раз, вы можете расширить таблицу Students_Lessons
дополнительными столбцами для любой другой необходимой вам информации, в противном случае, вероятно, лучше дополнить модель данных дополнительными таблицами для хранения дополнительной информации.