Предположим, у меня есть сотрудник & Столы для совещаний.Дизайн БД Многие из многих отношений с другими таблицами
Employee
-----------
id
name
Meeting
-----------
id
name
Employee_Meeting
-----------
id
employee_id
meeting_id
Теперь мне нужно добавить задачи сотрудника (или что-то еще) на эту встречу. Что такое наилучшая практика? Я мог бы иметь отношения, как это:
Employee_Meeting_Task
-----------
Employee_Meeting_id
task_id
или
Employee_Tasks
-----------
id
employee_id
meeting_id
task_id
ли обе эти подходы действительно с «правильной» базы данных точки зрения дизайна?
Мои проблемы являются:
Случай 1: Большую часть времени, если удалить сотрудника из собрания мне нужно удалить свои задачи в этой встрече, а также. Employee_Meeting_Task
будет принуждаться к ограничению.
Случай 2: Иногда сотрудник участвует в ежедневной встрече и регулярно выполняет те же задачи на этом собрании. Если он заболел в течение нескольких дней, я хотел бы удалить его из собрания, но я не хочу снова добавлять его задачи на собрание в следующий раз, когда он его примет.
Поскольку у сотрудника может быть более одной задачи на собрании, я бы сказал, что наличие таблицы Employee_Meeting_Task имеет наибольший смысл. Если это было от 1 до 1 отображения, таблица будет чувствовать себя избыточной, хотя. – Tobberoth
Прочтите http://stackoverflow.com/questions/2190272/sql-many-to-many-table-primary-key для первичных ключей для таблиц многих-ко-многим. –