MS Access - Relacionamento muitos para muitos

Neste capítulo, vamos entender o relacionamento muitos para muitos. Para representar um relacionamento muitos para muitos, você deve criar uma terceira tabela, geralmente chamada de tabela de junção, que divide o relacionamento muitos para muitos em dois relacionamentos um para muitos. Para fazer isso, também precisamos adicionar uma tabela de junção. Vamos primeiro adicionar outra tabelatblAuthers.

Vamos agora criar um many-to-many relationship. Temos mais de um autor trabalhando em mais de um projeto e vice-versa. Como você sabe, temos um campo Autor em tblProjects, portanto, criamos uma tabela para ele. Não precisamos mais deste campo.

Selecione o campo Autor e pressione o botão Excluir e você verá a seguinte mensagem.

Clique Yes. Agora teremos que criar uma tabela de junção. Esta tabela de junção possui duas chaves estrangeiras, conforme mostrado na captura de tela a seguir.

Esses campos de chave estrangeira serão as chaves primárias das duas tabelas que foram vinculadas - tblAuthers e tblProjects.

Para criar uma chave composta no Access, selecione esses campos e a partir do table tools design guia, você pode clicar diretamente nessa chave primária e isso marcará não um, mas ambos os campos.

A combinação desses dois campos é o tables’ unique identifier. Vamos agora salvar esta tabela comotblAuthorJunction.

A última etapa para reunir os relacionamentos muitos para muitos é voltar àquele relationships view e criar esses relacionamentos clicando em Show Table.

Selecione as três tabelas destacadas acima, clique no botão Adicionar e feche esta caixa de diálogo.

Clique e arraste o AuthorID campo de tblAuthors e coloque-o em cima do tblAuthorJunction mesa AuthorID.

O relacionamento que você está criando é aquele que o Access considerará como um relacionamento um para muitos. Também iremos reforçar a integridade referencial. Vamos agora ligarCascade Update e clique no Create botão como na imagem acima.

Vamos agora segurar o ProjectID, arraste e solte-o bem em cima de ProjectID de tblAuthorJunction.

Nós vamos Enforce Referential Integrity e Cascade Update Related Fields.

A seguir estão os relacionamentos muitos para muitos.