Один-к-одному

Связь между сотрудниками и личными профилями: у каждого сотрудника может быть только одна запись личного профиля, и каждая запись личного профиля может соответствовать только одному сотруднику. В этом случае сотрудники и личные профили находятся в отношении один-к-одному.

Внешний ключ связи один-к-одному можно разместить в исходной или целевой таблице. Если связь означает «имеет один», внешний ключ лучше разместить в целевой таблице; если она обозначает «принадлежит», внешний ключ лучше разместить в исходной таблице.

В приведённом выше примере у сотрудника может быть только один личный профиль, а личный профиль принадлежит сотруднику, поэтому внешний ключ лучше разместить в таблице личных профилей.

Один-к-одному (имеет один)

Означает, что у сотрудника есть одна запись личного профиля

Связь ER

alt text

Настройка поля

alt text

Один-к-одному (принадлежит)

Означает, что запись личного профиля принадлежит сотруднику

Связь ER

Настройка поля

alt text

Описание параметров

Исходная коллекция

Исходная таблица, то есть таблица, в которой находится текущее поле.

Целевая коллекция

Целевая таблица, с которой устанавливается связь.

Внешний ключ

Используется для установления связи между двумя таблицами. Внешний ключ связи один-к-одному можно разместить в исходной или целевой таблице. Если связь означает «имеет один», внешний ключ лучше разместить в целевой таблице; если она обозначает «принадлежит», внешний ключ лучше разместить в исходной таблице.

Исходный ключ <- Внешний ключ (внешний ключ в целевой таблице)

Поле, на которое ссылается ограничение внешнего ключа; оно должно быть уникальным. Если внешний ключ находится в целевой таблице, это означает «имеет один».

Целевой ключ <- Внешний ключ (внешний ключ в исходной таблице)

Поле, на которое ссылается ограничение внешнего ключа; оно должно быть уникальным. Если внешний ключ находится в исходной таблице, это означает «принадлежит»

ON DELETE

ON DELETE — это правило обработки ссылок внешнего ключа в дочерней таблице при удалении записи из родительской таблицы. Оно является одним из параметров при определении ограничения внешнего ключа. К распространённым параметрам ON DELETE относятся:

  • CASCADE: при удалении записи из родительской таблицы автоматически удаляются все связанные с ней записи в дочерней таблице.
  • SET NULL: при удалении записи из родительской таблицы значение внешнего ключа в связанных записях дочерней таблицы устанавливается в NULL.
  • RESTRICT: параметр по умолчанию. Если при попытке удалить запись из родительской таблицы существуют связанные записи в дочерней таблице, удаление записи из родительской таблицы отклоняется.
  • NO ACTION: аналогично RESTRICT: если существуют связанные записи в дочерней таблице, удаление записи из родительской таблицы отклоняется.