Многие-ко-многим

В системе записи на курсы есть две сущности: студенты и курсы. Студент может записаться на несколько курсов, и курс может иметь несколько зачисленных студентов, что образует связь многие-ко-многим. В реляционной базе данных для представления связи многие-ко-многим между студентами и курсами обычно используют промежуточную коллекцию, например коллекцию зачислений. Такая коллекция может фиксировать, какие курсы выбрал каждый студент, и какие студенты зачислены на каждый курс. Эта конструкция фактически представляет связь многие-ко-многим между студентами и курсами.

ER-диаграмма:

alt text

Конфигурация поля:

alt text

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

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

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

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

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

Промежуточная коллекция

Промежуточная коллекция — это коллекция, которая используется, когда связь многие-ко-многим существует между двумя сущностями. В промежуточной коллекции есть два внешних ключа, которые используются для поддержания связи между двумя сущностями.

Исходный ключ

Поле в исходной коллекции, на которое ссылается внешний ключ. Оно должно быть уникальным.

Внешний ключ 1

Поле в промежуточной коллекции, которое устанавливает связь с исходной коллекцией.

Внешний ключ 2

Поле в промежуточной коллекции, которое устанавливает связь с целевой коллекцией.

Целевой ключ

Поле в целевой коллекции, на которое ссылается внешний ключ. Оно должно быть уникальным.

ПРИ УДАЛЕНИИ

ПРИ УДАЛЕНИИ относится к правилам, применяемым к ссылкам внешнего ключа в связанных дочерних коллекциях при удалении записей родительской коллекции. Это параметр, используемый при определении ограничения внешнего ключа. Общие варианты ПРИ УДАЛЕНИИ включают:

  • КАСКАД: Когда запись в родительской коллекции удаляется, все связанные записи в дочерней коллекции автоматически удаляются.
  • УСТАНОВИТЬ NULL: Когда запись в родительской коллекции удаляется, значения внешнего ключа в связанных записях дочерней коллекции устанавливаются в NULL.
  • ЗАПРЕЩЕНО: Вариант по умолчанию: он предотвращает удаление записи родительской коллекции, если в дочерней коллекции есть связанные записи.
  • НЕТ ДЕЙСТВИЯ: По смыслу похоже на ЗАПРЕЩЕНО: он предотвращает удаление записи родительской коллекции, если в дочерней коллекции есть связанные записи.