У меня есть следующие таблицы: school
, teacher
, school_teacher
и student
.
school_teacher
- это таблица соединений многие-ко-многим, использующая автоматически сгенерированные PK и FK school
и teacher
.
Ученик принадлежит учителю конкретной школы, а у учителя школы много учеников.
У меня вопрос, должен ли я создавать иностранного введите таблицу ученика, чтобы указать school_teacher
таблицу PK или две таблицы PK (school
, teacher
) по отдельности?
Я считаю, что для ссылочной целостности было бы лучше ссылаться на school_teacher
убедиться, что записи транзакций вставляются только в том случае, если между школой и учителем существуют отношения. С точки зрения передового опыта, что является лучшим вариантом или лучшим способом решения этой проблемы? Есть ли какая-либо другая возможность лучше, чем те, о которых я упоминал?
В общем, существует ли проблема, при которой первичный ключ таблицы ассоциации является внешним ключом в другой таблице?
Это просто пример. В реальном случае ученик может иметь более одного учителя. Это для упрощения примера.