Содержит ли таблица сведений столбец идентификаторов в отношении «Мастер-Сведения»? - PullRequest
0 голосов
/ 06 января 2010

Содержат ли в таблицах Master-Detail столбцы идентификаторов?

Или, если так?

В базе данных Northwind у OrderDetail нет столбца идентификатора.

1 Ответ

1 голос
/ 06 января 2010

Любая имеющаяся у вас таблица данных, содержащая то, что вы хотите получить, всегда должна содержать первичный ключ - это ее основная задача: однозначно идентифицировать одну строку.

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

Так что да - я бы порекомендовал любой таблице подробностей иметь некоторую форму первичного ключа ("ID"). Независимо от того, связано ли это каким-либо образом с главным идентификатором или нет, это зависит от конкретного случая, но должен был быть способ как-то независимо идентифицировать каждую строку подробностей.

Если у вас есть таблица ссылок для отношения M: N, обычно у вас есть только два столбца внешнего ключа (для таблиц 1 и 2). Как правило, этого достаточно, поскольку комбинация этих двух ФК уникальна.

Единственной причиной добавления отдельного идентификатора в такую ​​таблицу может быть необходимость добавления дополнительных фрагментов информации, которые описывают отношения как таковые. Но даже тогда, если комбинация (key1, key2) уникальна, этого обычно достаточно.

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