Experimente!
O que é uma relação muitos-para-muitos?
As relações muitos-para-muitos são as relações de tabela mais utilizadas. Fornecem informações cruciais, como os clientes que o seu pessoal de venda contactou e os produtos que estão em encomendas de clientes.
Uma relação muitos-para-muitos existe quando um ou mais itens numa tabela podem ter uma relação com um ou mais itens noutra tabela. Por exemplo:
-
A sua tabela Encomenda contém encomendas efetuadas por diversos clientes (listados na tabela Clientes) e um cliente pode efetuar mais do que uma encomenda.
-
A sua tabela Produtos contém os produtos individuais que vende, que fazem parte de muitas encomendas na tabela Encomenda.
-
Uma encomenda pode incluir uma instância (ou mais do que uma) de um produto específico e/ou uma instância (ou mais do que uma) de vários produtos.
Por exemplo, a encomenda número 1012 de Rita Santos pode conter os produtos 12 e 15 (um de cada) e cinco produtos 30.
Criar relações muitos-para-muitos
O procedimento para criar relações muitos-para-muitos é diferente da criação de um-para-um ou um-para-muitos. Nestas relações, basta ligar os campos adequados através de uma linha. Para criar relações muitos-para-muitos, tem de criar uma nova tabela ou de ligar as outras duas. Esta nova tabela denomina-se tabela intermédia (por vezes tabela de associação ou tabela de junção).
No cenário anteriormente descrito, cria uma tabela intitulada Detalhes da Encomenda com registos que contenham, para cada item em determinada encomenda, o ID da tabela Encomenda e o ID da tabela Produtos. Para criar uma chave primária da tabela, utilize as chaves combinadas das duas tabelas.
No nosso cenário, o número de encomenda 1012 de Rita Santos consiste nos produtos 12, 15 e 30. Significa que as nossas entradas de Detalhe da Encomenda têm este aspeto:
ID da Encomenda |
ID do Produto |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
A Rita encomendou os produtos 12 e 15 (um de cada) e cinco produtos 30. Não podemos adicionar outra linha com 1012 e 30, porque a combinação de ID da Encomenda e ID de Produto forma a chave primária e as chaves primárias têm de ser exclusivas. Em vez disso, adicionamos um campo de Quantidade à tabela Detalhes da Encomenda.
ID da Encomenda |
ID do Produto |
Quantidade |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
Criar uma tabela intermédia
-
Selecione Criar > Tabela.
-
Selecione Guardar .
-
Em Nome da Tabela, introduza um título descritivo. Para indicar o objetivo, pode incluir junção ou intermédia no nome da tabela.
Criar campos na tabela intermédia
Como primeira coluna de tabela, Access adiciona automaticamente um campo de ID. Altere o campo para fazer corresponder o ID da primeira tabela na sua relação muitos-para-muitos. Por exemplo, se a primeira tabela for uma tabela de Encomendas intitulada ID de Encomenda e a respetiva chave primária for um número, altere o nome do campo ID na nova tabela para ID de Encomenda e, no tipo de dados, utilize Número.
-
Na Vista de Folha de Dados, selecione o cabeçalho de coluna ID e, em seguida, escreva o novo nome do campo.
-
Selecione o campo cujo nome acabou de mudar.
-
No separador Campos da Tabela , em Tipo de dados, selecione um tipo de dados para corresponder ao campo na tabela original, como Número ou Texto Breve.
-
Selecione Clicar para Adicionar e, em seguida, selecione um tipo de dados que corresponda à chave primária na segunda tabela. No cabeçalho de coluna, que já se encontra selecionado, escreva o nome do campo de chave primária da segunda tabela, como ID do Produto.
-
Se precisar de controlar outras informações sobre estes registos, como a quantidade dos itens, crie campos adicionais.
Combinar campos de ID primário
Agora que tem dois campos com ID de duas tabelas que pretende ligar, crie uma chave primária baseada nesses ID na tabela intermédia.
-
Na Vista de Estrutura, abra a tabela intermédia.
-
Selecione ambas as linhas que contêm os ID. (Se seguiu o procedimento anterior, estas são as duas primeiras linhas.)
-
Selecione Estrutura da Tabela > Chave Primária.
Os ícones de teclas são apresentados junto a ambos os campos de ID.
Ligar as três tabelas para criar a relação muitos-para-muitos
Para completar a relação muitos-para-muitos, crie uma relação um-para-muitos entre o campo de chave primária de cada tabela e o campo correspondente na tabela intermédia. Para obter detalhes sobre como o fazer, consulte o artigo Introdução às relações de tabelas.
Depois de concluir, as relações deverão ter este aspeto: