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

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

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

