#database #database-design #entity-relationship #erd
#База данных #база данных-дизайн #сущность-связь #erd
Вопрос:
У меня есть случай, когда сотрудники отправляют экспертные оценки друг другу. Получатель запрашивает отзыв, а отправитель (один или несколько) отправляет отзыв. Сотрудник не может выполнять самоконтроль.
1) Могу ли я использовать одну таблицу как «Сотрудник» и использовать ее как 2 экземпляра, такие как получатель и отправитель?
2) Могу ли я использовать таблицу ‘Employee’, а затем самостоятельно ссылаться на нее, чтобы избежать избыточности? Я пытаюсь подумать, как я могу это сделать с ограничениями, такой сотрудник не может отправить свой собственный отзыв, применив условие, поскольку идентификатор сотрудника не должен быть равен при отправке / запросе обратной связи.
Ответ №1:
Ответ №2:
1) У вас может быть связь с двумя ролями, которые обе заполняются сотрудниками. Однако не путайте строки / таблицы с сущностями / типами сущностей.
2) Я предполагаю, что сотрудники могут отправлять отзывы более одного раза, а также получать отзывы более одного раза. Если это так, у вас есть отношение «многие ко многим», которое нельзя денормализовать в таблице Employee с введением избыточности. Отдельная таблица с контрольным ограничением, чтобы не допустить, чтобы отправитель был равен получателю, звучит уместно.