Muitos-para-muitos
Em um sistema de seleção de disciplinas, há duas entidades: alunos e cursos. Um aluno pode se matricular em vários cursos, e um curso também pode ter vários alunos matriculados, formando uma relação muitos-para-muitos. Em bancos de dados relacionais, para representar a relação muitos-para-muitos entre alunos e cursos, normalmente é usada uma tabela intermediária, como uma tabela de matrículas. Essa tabela pode registrar quais cursos cada aluno escolheu e quais alunos estão matriculados em cada curso. Esse modelo representa bem a relação muitos-para-muitos entre alunos e cursos.
A relação ER é apresentada a seguir

Configuração dos campos

Descrição dos parâmetros
Source collection
Tabela de origem, ou seja, a tabela na qual o campo atual está localizado.
Target collection
Tabela de destino, à qual a associação é estabelecida.
Through collection
Tabela intermediária. Quando existe uma relação muitos-para-muitos entre duas entidades, é necessário usar uma tabela intermediária para armazenar essa relação. A tabela intermediária possui duas chaves estrangeiras, usadas para armazenar a associação entre as duas entidades.
Source key
Campo referenciado pela restrição de chave estrangeira, que deve ser exclusivo.
Foreign key 1
Campo da tabela intermediária usado para estabelecer a associação com a tabela de origem.
Foreign key 2
Campo da tabela intermediária usado para estabelecer a associação com a tabela de destino.
Target key
Campo referenciado pela restrição de chave estrangeira, que deve ser exclusivo.
ON DELETE
ON DELETE refere-se à regra de operação sobre as referências de chaves estrangeiras na tabela filha quando um registro é excluído da tabela pai. É uma opção usada na definição de restrições de chave estrangeira. As opções ON DELETE mais comuns incluem:
- CASCADE: ao excluir um registro da tabela pai, exclui automaticamente todos os registros associados na tabela filha.
- SET NULL: ao excluir um registro da tabela pai, define como NULL o valor da chave estrangeira associada na tabela filha.
- RESTRICT: opção padrão. Ao tentar excluir um registro da tabela pai, a exclusão é rejeitada se houver registros associados na tabela filha.
- NO ACTION: semelhante a RESTRICT; se houver registros associados na tabela filha, a exclusão do registro da tabela pai será rejeitada.

