Qual é a melhor maneira de modelar o seguinte relacionamento de tipo?
Digamos que eu tenha tabelas representando dois tipos de entidades: company
e person
. Eu tenho uma customer
tabela com um entity_id
campo, que deve se referir a a company
ou a person
.
Se eu simplesmente armazenar a company_id
ou a , não saberei em qual tabela procurar a entidade. A primeira solução que me ocorreu é ter um person_id
campo no qual levaria os valores "empresa" ou "pessoa" para diga-me a qual tabela minha chave estrangeira se refere. Não tenho certeza se esta é a melhor maneira embora.entity_id
entity_type
customer
entity_id
Isso parece ser um problema bastante comum no design de banco de dados, então espero que haja um padrão de design que eu possa adotar.
Eu usei a palavra polimorfismo no título no sentido mais amplo, então não estou me referindo à herança. No meu exemplo, uma empresa não é uma pessoa (ou vice-versa), mas ainda são intercambiáveis. Outras perguntas que encontrei nos sites do Stack Exchange assumiram que a herança também é um requisito, portanto, não tenho certeza de que haja uma duplicata adequada.