12.7. Single Table Inheritance
Toda a hierarquia em uma tabela com coluna discriminadora.
Resumo
- Uma única tabela para toda a hierarquia de classes; colunas de todas as subclasses.
- Coluna discriminadora (tipo) indica qual classe instanciar.
- Prós: sem joins, consultas simples, mover campos na hierarquia não muda tabelas.
- Contras: colunas vazias (nulos), tabela grande e confusa, conflito de nomes entre subclasses.
- Bom para hierarquias rasas e com poucos campos específicos.
Perguntas-chave
responda de cabeça, depois abraPara que serve a coluna discriminadora?
Indicar qual subclasse deve ser instanciada ao ler a linha.
Qual a maior vantagem?
Nenhum join: qualquer objeto da hierarquia é lido de uma só tabela.
Qual a maior desvantagem?
Desperdício de espaço com colunas nulas e tabela difícil de entender.
Exercícios de fixação
0/5 respondidas1.
Hierarquia
Jogador → Futebolista, Jogador de Críquete → Arremessador, todos em jogadores com coluna tipo. Qual padrão?2.
Qual desvantagem típica do Single Table Inheritance?
3.
Mover o campo
clube de Futebolista para Jogador exige quais mudanças no banco com Single Table?4.
Como o mapper sabe qual classe criar ao ler uma linha?
5.
Consulta polimórfica 'todos os jogadores com nome Silva' em Single Table exige: