Отношение один к одному создает два внешних ключа в диаграмме моделирования данных MySQL Workbench - PullRequest
0 голосов
/ 25 января 2019

Я занимаюсь моделированием данных на MySQL.

У меня есть три объекта данных:

  1. company
  2. driver
  3. car

Отношения: у одной компании много водителей, у одной машины два водителя (основной водитель и второй водитель)

Это модель данных, которую я имею до сих пор (я создал только одну driver ссылку на car на рисунке):

enter image description here

Как показано на рисунке выше, я связал company с driver с один ко многим отношения.Инструмент автоматически создает company_id внешний ключ в таблице driver, как и ожидалось.Там нет проблем.

Проблема возникает в отношениях между driver и car.На рисунке я только связал отношение один к одному с car до driver, я ожидал, что инструмент создаст один driver_id внешний ключ, но инструмент автоматически создаст два внешние ключи: driver_id & driver_company_id.

(Если я создам еще одно отношение один к одному для штурмана с car до driver, инструмент снова создаст два новых внешних ключа, которые не указанына картинке)

Почему это так?Почему инструмент создает внешний ключ driver_company_id помимо внешнего ключа driver_id для отношения один-к-одному?Какова концепция позади?Какая разница, если теперь я вручную удаляю внешний ключ driver_company_id?

1 Ответ

0 голосов
/ 25 января 2019

Сплошной соединитель указывает идентифицирующее отношение , что означает, что driver.company_id должен быть частью составного первичного ключа.

Следовательно, внешний ключ от car до driver имеетдля ссылки на составной первичный ключ, поэтому он создает оба столбца.

Если вы хотите сделать то, что я думаю, вы хотите, чтобы оба соединителя внешнего ключа использовали пунктирные линии, что указывает на неидентифицирующие отношения.

...