Описание тега foreign-keys

Внешние ключи - это функция целостности данных в реляционных (и SQL) базах данных. Внешний ключ - это набор атрибутов в реляционной таблице, на который действует ограничение ссылочной целостности. Ограничение ссылочной целостности требует, чтобы значения атрибутов внешнего ключа в одной таблице A совпадали с соответствующими значениями в некоторой указанной таблице B (которая иногда может быть той же таблицей, что и A).

Внешний ключ идентифицирует столбец или набор столбцов в одной (ссылающейся) таблице, которая ссылается на столбец или набор столбцов в другой (указанной) таблице. Столбцы в ссылочной таблице должны ссылаться на столбцы первичного ключа или другого суперключа в ссылочной таблице. Значения в одной строке ссылающихся столбцов должны находиться в одной строке ссылочной таблицы.

Таким образом, строка в ссылающейся таблице не может содержать значений, которых нет в указанной таблице (кроме потенциально NULL). Таким образом можно делать ссылки для связывания информации, и это является важной частью нормализации базы данных.

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

Составной внешний ключ состоит из двух или более столбцов. Все столбцы, образующие единый внешний ключ, ссылаются на одну таблицу.

В некоторых случаях ограничение внешнего ключа может ссылаться на ту же таблицу. Например, для таблицы сотрудников, имеющей employee_number, employee_name и manager_employee_number. Каждый менеджер также является сотрудником, поэтому для него могут быть установлены ограничения внешнего ключа между manager_employee_number и employee_number.

Ссылка