12.9. Concrete Table Inheritance
Uma tabela por classe concreta, com todos os campos herdados.
Resumo
- Uma tabela por classe concreta, contendo também os campos herdados.
- Prós: objeto lido de uma tabela só, sem colunas vazias e sem join.
- Contras: campos da superclasse repetidos; mudar a superclasse muda todas as tabelas.
- Chave única entre tabelas é obrigatória para consultas polimórficas e Identity Map.
- Consulta pela superclasse exige várias consultas ou UNION. Também chamado Leaf Table Inheritance.
Perguntas-chave
responda de cabeça, depois abraQual problema de chaves o Concrete Table cria?
Ids podem colidir entre tabelas; é preciso garantir unicidade em toda a hierarquia.
Como buscar 'todos os jogadores'?
Consultando cada tabela concreta e unindo (UNION ou várias consultas).
Qual o nome alternativo?
Leaf Table Inheritance.
Exercícios de fixação
0/5 respondidas1.
Tabelas
futebolista(id, nome, clube) e cricket(id, nome, media), sem tabela jogador. Qual padrão?2.
Por que é preciso garantir chaves únicas entre as tabelas concretas?
3.
Adicionar um campo
email em Jogador (superclasse) exige:4.
Qual a principal vantagem do Concrete Table sobre o Class Table?
5.
Comparando os três padrões de herança, qual combina 'sem nulos' e 'sem joins para um objeto'?