Member 13771716 Ответов: 2

Должен ли я объявить внешний ключ в качестве идентификатора


У меня есть одна таблица, первичный ключ которой-это личность. Я добавляю этот PK в качестве внешнего ключа в другую таблицу, но блуждал, если бы мне все еще нужно было установить этот столбец внешнего ключа в identity?

Что я уже пробовал:

Я посмотрел, было ли это необходимо на других форумах, но не смог найти ответа.

2 Ответов

Рейтинг:
17

W∴ Balboos, GHB

Ни в коем случае !

1 - внешний ключ используется для связи "один ко многим". Он связывает родительскую запись с любым количеством дочерних записей.
2 - внешний ключ объявляется для предотвращения попадания в дочернюю таблицу любых записей, не имеющих ссылки (первичного ключа) в родительской таблице. Это помогает обеспечить ссылочную целостность.

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



Рейтинг:
1

David C. Williams

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