SQL: несколько внешних ключей для наследования

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

таблицы

Компания

PK: CompanyID

производитель

PK, FK: CompanyID

Сделать модель

PK: MakeModelID
FK: ManufacturerID

Оборудование

PK: EquipmentID
FK: MakeModelID

Было бы правильно включить ManufacturerID колонка как FK для производителя в Equipment Таблица? И тогда было бы разумно создать индекс на обоих ManufacturerID а также MakeModelID в Equipment Таблица? Я самоучка и просто искала какой-то дизайнерский вклад. Благодарю.

2 ответа

Нет, было бы неправильно включать FK в таблицу производителей в таблице оборудования.

Таблица оборудования уже имеет FK для таблицы Make/Model, а FK - таблицы производителя. Если вы создали этот FK, то технически запись в таблице оборудования может быть связана с двумя разными производителями.

Необязательно включать ManufacturerID в таблицу Equipment, поскольку у вас уже есть MakeModelID, а в таблице MakeModel уже есть ManufacturerID. Таким образом, вы можете присоединиться через таблицу MakeModel, чтобы получить ManufacturerID.

Другие вопросы по тегам