12.3. Association Table Mapping
Muitos-para-muitos via tabela de ligação.
Resumo
- Associação muitos-para-muitos vira uma tabela de ligação com as duas chaves estrangeiras.
- A tabela de ligação não tem objeto correspondente no domínio; existe só no banco.
- Carregar: consulta com join na tabela de ligação para evitar uma consulta por item.
- Atualizar: geralmente apagar os vínculos do dono e reinserir.
- Se o vínculo ganhar dados próprios (data, papel), ele vira uma entidade com mapeamento próprio.
Perguntas-chave
responda de cabeça, depois abraQual o conteúdo da tabela de ligação?
As duas chaves estrangeiras (e normalmente a PK composta delas).
A tabela de ligação vira classe?
Não, enquanto só guardar o vínculo. Se tiver atributos próprios, vira entidade.
Como carregar de forma eficiente?
Com join entre a tabela de ligação e a tabela alvo em uma só consulta.
Exercícios de fixação
0/5 respondidas1.
Funcionários têm várias habilidades e habilidades têm vários funcionários. Qual estrutura de banco?
2.
O vínculo aluno-turma passa a ter 'nota final' e 'data de matrícula'. O que muda no modelo?
3.
Como carregar as habilidades de um funcionário sem uma consulta por habilidade?
4.
No domínio, a tabela de ligação pura (só as duas FKs) aparece como:
5.
Ao salvar mudanças na coleção de habilidades, qual abordagem é comum?