Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Implicações de supertipo e subtipo


Se tudo o que você precisa é anexar imagens a usuários e páginas, não tenho certeza se uma hierarquia completa de categorias (também conhecida como "subclasse", "subtipo", "herança") seria a ideal.

Assumindo que páginas/usuários podem ter várias imagens, e qualquer imagem pode ser anexada a várias páginas/usuários, e supondo que você não queira anexar imagens a imagens, seu modelo provavelmente deve ficar assim:



Você poderia use a hierarquia de categorias para obter resultados semelhantes...



...mas com tão poucas subclasses eu não recomendaria (devido a possíveis problemas de manutenção e desempenho). Por outro lado, se houver potencial para adicionar novas subclasses no futuro, essa pode ser a solução certa (ENTITY_IMAGE "cobrirá" automaticamente todas essas novas subclasses, então você não precisa introduzir um novo "link" tabela para cada um deles).

BTW, existem 3 maneiras principais para implementar a hierarquia de categorias, cada uma com seu próprio conjunto de compensações.