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.