Чтобы обеспечить ссылочную целостность между двумя таблицами с помощью foreign key, нужно выполнить следующие шаги: 2
- Установить связь между таблицами. 5 Значения в столбце, указанном как foreign key, должны существовать в столбце, который является первичным ключом или уникальным ключом в другой таблице. 5
- Учесть правила каскадных операций. 2 Они определяют, как изменения в родительской таблице (например, обновление или удаление строк) будут отражаться в дочерней таблице. 2 Возможны несколько вариантов: каскадное обновление (CASCADE), запрет изменений (NO ACTION или RESTRICT), установка значений NULL (SET NULL) и другие. 2
- Установить совместимые типы данных. 2 Например, если колонка первичного ключа родительской таблицы имеет тип INTEGER, то и соответствующая колонка в дочерней таблице должна иметь тип INTEGER. 2 Несоответствие типов данных может вызвать ошибки при создании или изменении структуры таблиц. 2
- Создать индекс. 34 Если в связующих таблицах достаточно много строк, то рекомендуется добавить к внешнему ключу ещё и индекс. 3 Благодаря индексу, сервер сможет быстрее найти связанные строки в разных таблицах. 3
Пример: столбец «ClientID» в таблице «Orders» является внешним ключом, который ссылается на столбец «ClientID» в таблице «Clients». 5 В этом случае ограничение FOREIGN KEY обеспечивает, что в базе данных не будет ссылок на несуществующие значения в родительской таблице. 5