У меня есть таблица под названием Tbl_Event, в которой хранится основная информация о предстоящих событиях.Несколько внешних ключей между двумя таблицами
Tbl_Event
EventID Description Location
У меня есть еще одна таблица под названием персонал, который хранит информацию
Tbl_Staff
StaffID Name
персонала Теперь каждое событие может иметь несколько сотрудников, для достижения этой цели я создал новую таблицу
tbl_Event_Staff
RecordID StaffID EventID
StaffID и EventID имеют уникальное ограничение COMBINED. Существует дополнительное условие, когда одним из сотрудников должен быть руководитель мероприятия. Что является наилучшим решением для достижения этой цели, я должен добавить дополнительную колонку в tbl_event - SupervisorID
Tbl_Event
EventID Description Location SupervisorID
и связать его с tbl_Event_Staff на StaffID (в данном случае будет внешние ключи между этими двумя таблицами - EventID и StaffID)
или * Я не думаю, что это лучшее решение для избыточных данных.
Должен ли я добавить дополнительный столбец для tbl_Event_Staff - isSupervisor (bool), и для каждой строки есть логическая переменная, которая означает, что персонал для этого события является супервизором или нет.
tbl_Event_Staff
RecordID StaffID EventID IsSupervisor
1 10 3 true
2 20 3 false
3 30 3 false
или
Есть ли альтернативное решение?
Спасибо за ваш вклад. Это лучший подход для решения этой проблемы? У меня будет много избыточных данных, и будет намного сложнее обновить базу данных. Хотя, подумайте об этом каждый раз, когда пользователь устанавливает штат в качестве супервизора, я могу пропустить все идентификаторы персонала для этого события и установить флаг IsSupervisor в false, но тогда эта таблица не будет нормализована должным образом. думаю, это цена, которую мне придется заплатить. –
@ Abhi.Net. На данный момент у вас есть два ответа, и мы не согласны. Возьмите это как знак того, что нет «лучшего подхода». Только вы знаете, какие запросы и операции вам понадобятся для поддержки этих структур данных. И, как я указываю в своей стороне, вы можете (из любого дизайна) создавать представления, имитирующие другой дизайн, поэтому, если позже вы решите, что другая структура более уместна, вы можете ее перестроить, а затем только перезаписать их запросов, которые извлекают выгоду из перепроектирования. –
Вот что я думаю. Единственная причина, по которой я подчеркиваю, чтобы получить лучшее решение, это то, что это часть назначения диаграммы ER, где мне нужно создать структуру базы данных и нормализовать ее. Все делается за исключением этой части, и я не уверен, какой подход следует придерживаться, но я, вероятно, выберу второй, а затем оставлю комментарий, объясняющий мой выбор. –