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.