Есть ли связь между одной таблицей с одним первичным ключом и другой с двумя первичными ключами? - PullRequest
0 голосов
/ 09 марта 2020

Обычно я спрашиваю об этом, но приведу пример для иллюстрации.

В таблице 1 есть следующие столбцы:

ID (Pk)
Order_Desc
Order_DT 

В таблице 2 есть следующие столбцы:

ID (PK)
Product_Code (PK)
Product_Desc 

Могу ли я иметь связь между таблицей 1 и таблицей 2. Если это так, как бы вы сделали это в SQL без ошибки? Сможете ли вы создать отношения, если код продукта или идентификатор не будет первичным ключом? Вместо этого это был внешний ключ?

1 Ответ

1 голос
/ 09 марта 2020

Ваш table2 не имеет двух первичных ключей - он имеет ONE первичный ключ, состоящий из 2 столбцов. Любая реляционная таблица НИКОГДА не имеет более одного первичного ключа - это просто невозможно.

Любое отношение FK к этой таблице должно включать все столбцы , которые имеет PK таблицы, на которую ссылаются, - поэтому любой FK до Table2 должен включать оба ID и Product_Code.

Это предложение типа "все или ничего" - либо ваш внешний ключ включает все столбцы первичного ключа ссылочных таблиц, либо вы не можете sh установить FK-отношение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...