Я занимаюсь моделированием данных на MySQL.
У меня есть три объекта данных:
company
driver
car
Отношения: у одной компании много водителей, у одной машины два водителя (основной водитель и второй водитель)
Это модель данных, которую я имею до сих пор (я создал только одну driver
ссылку на car
на рисунке):
Как показано на рисунке выше, я связал 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
?