Скажите, у меня есть "Таблица A":
Id | Col A
1 Z
2 I
3 Null
... и n номеров таблиц в этом формате:
Id | A_FK | OtherInfo
1 1 "Some info"
2 2 "Some more info"
3 3 "Blah"
... где A_FK - ссылка внешнего ключа на идентификатор таблицы А.
Итак, есть одна «Таблица A» и n номеров «Таблица B». Для этих таблиц "B" некоторые из них могут иметь любое существующее значение для A_FK (никаких ограничений не требуется). Другие таблицы "B" могут только ссылаться на значение A_FK, если соответствующая запись не имеет нулевого значения в столбце A.
Итак, мои вопросы:
- Как бы я написал ограничение, чтобы позаботиться об этом (я думаю, это довольно легко, мне просто никогда не приходилось писать, и я немного ленивый)?
- Ограничение работает наоборот? Скажем, я ввел запись в таблицу «B», и она связана с Id = 1 в таблице A (с ограничением для таблицы B). Это хорошо, потому что Col A для Таблицы A 1 = "Z". Будет ли ошибка, если я попытаюсь изменить «Z» на Null позднее?
Заранее спасибо.