2011-10-27 4 views
0

У меня есть два объекта: Class и Student_Class. Ниже представлены следующие объекты:Как объяснить взаимосвязь между этими двумя объектами?

Class: 

ClassId (PK)   int (5) 
ClassDay    varchar(9) 
ClassTime   time 
ModuleId (FK) varchar(10) 
TeacherId (FK) varchar(4) 

Student_Class: 

ClassId (PK)   int(5) 
StudentId (PK) varchar(6) 

Моя проблема в том, что я не знаю, как я объясняю отношения. Разве один класс student_class принадлежит к одному классу, и на классе может быть много ученических классов или это наоборот, потому что я не уверен, что смешно, когда я создал эти отношения. Сначала я подумал, что это отношения от многих до многих, но это не может быть так, потому что Student_class проходит между объектом Student и Class.

ответ

2

Вам нужно ТРЕТЬЕ сущность - студент с ПК Студента.

Ваш Student_Class - это в основном таблица перекрестных ссылок. Это позволяет отношения «многие ко многим». Он должен иметь два ИНОСТРАННЫХ КЛЮЧА (не ПК). Вы можете добавить два индекса для ключей, если хотите.

Таким образом, каждый ученик может иметь столько ссылок на классы, сколько захотите. Затем вы можете выбрать список классов, которые есть у ученика, или всех учащихся в данном классе.

+0

Привет, Спасибо. У меня есть студенческая сущность со студенческой связью со студенческим классом, но я не знал, было ли это необходимо для этого вопроса. Спасибо за ответ, хотя – BruceyBandit

+1

FYI, это называется * ассоциацией * table. Дополнительные столбцы в таких строках (например, «drop_out boolean») называются * ассоциативными данными *. – Bohemian

Смежные вопросы