Наличие внешнего ключа в качестве первичного ключа в дочерней таблице - PullRequest
2 голосов
/ 01 февраля 2011

В связи «один ко многим» между родительской таблицей и дочерней таблицей.

Можно ли сделать внешний ключ дочерней таблицы в качестве первичного ключа той же дочерней таблицы.

Просто пробираюсь через СУБД и буду признателен за экспертные взгляды на этот тип проектов.

Какие плюсы и минусы?

Ответы [ 2 ]

6 голосов
/ 01 февраля 2011

Если вы имеете в виду, что одна родительская строка отображается на несколько дочерних строк, вы не сможете этого сделать.Значения первичного ключа имеют уникальные ограничения ключа;если вам нужно, чтобы несколько дочерних строк ссылались на одного и того же родителя, установка ссылки на внешний ключ в качестве первичного ключа будет запрещать это, потому что вы не сможете иметь более одной строки с одинаковой ссылкой на внешний ключ.

4 голосов
/ 01 февраля 2011

Это создаст отношение 1: 0-1, а не 1: 0-n, поскольку определение внешнего ключа, связывающего дочерний элемент с родителем в качестве первичного ключа дочернего элемента, будет препятствовать тому, чтобы у вас было более одного дочернего элемента с тот же родительский ключ.

...