При каких условиях внешний ключ не должен быть нулевым?

Возможный дубликат:
Обнуляемый внешний ключ плохая практика?

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

3 ответа

Решение

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

TABLEA
id (int) PK

TableB
id (int) PK

tableAB
AID (Int)
bid (int)
(AID, BID) PK

Ограничение FOREIGN KEY может содержать нулевые значения; однако, если какой-либо столбец составного ограничения FOREIGN KEY содержит нулевые значения, проверка всех значений, составляющих ограничение FOREIGN KEY, пропускается. Чтобы убедиться, что все значения составного ограничения FOREIGN KEY проверены, укажите NOT NULL во всех участвующих столбцах.

Некоторые ORM требуют, чтобы FK обнулялись из-за того, как они связывают сущности и управляют зависимостями.

Другие вопросы по тегам