@nikitosis

Как правильно сделать такую структуру БД?

Вообщем, есть 3 таблицы Student,Teacher,PeopleGroup.
В PeopleGroup могут входить как студенты, так и преподаватели. Студенты и преподаватели могут входить в несколько PeopleGroup.
Как создать связь многие-ко-многим?
Пока что в голову приходит только одно: создать таблицу PeopleGroup_People, в которой будет PeopleGroup_id,Student_id,Teacher_id. И если мы добавляем студента в связь, тогда Teacher_id ставим null. Если преподавателя-Student_id ставим null.
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
студент - человек
преподаватель - человек
так что человеков можно загонять в одну сущность, а вот роли у них могут быть разными (студенты, абитуриенты, преподаватели, аспиранты, практиканты, лаборанты)
грубо прикидывая связь - еще вводим кафедры-факультеты
и вот уже между кафедрами-факультетами можно построить связь с типом:
вася48 - студент - факультета1
петя-преподаватель-кафедры2
вася48-лаборант-кафедры2

то бишь
1. person:id,+прочие атрибуты
2. group:id,+прочие атрибуты
3. relation: person_id, group_id, relation_type
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы