Чтобы обеспечить ссылочную целостность данных при работе со связями «один ко многим», можно использовать следующие подходы:
- Следить за корректностью значений внешнего ключа. 3 Внешний ключ дочерней таблицы должен содержать только те значения, которые уже имеются среди значений первичного ключа родительской таблицы. 3
- Использовать стратегии поддержания ссылочной целостности. 1 Некоторые из них:
- Restrict (Ограничить). 1 Не разрешать выполнение операции, которая приводит к нарушению ссылочной целостности. 1
- CASCADE (Каскадировать). 1 Разрешить выполнение требуемой операции, но внести необходимые поправки в других отношениях, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. 1
- SET NULL (Установить в NULL). 1 Все некорректные значения внешних ключей изменять на null-значения. 1
- SET DEFAULT (Установить по умолчанию). 1 Все некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. 1
- Исключать появление «осиротевших» записей в дочерней таблице. 4 Для этого нужно убедиться в наличии корректной записи «родителя». 4
Правила сохранения ссылочной целостности могут выбираться разработчиком в зависимости от предметной области разрабатываемой базы данных и возможностей СУБД. 3