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

Duas tabelas com as mesmas colunas ou uma tabela com coluna adicional?


Depende das restrições:
  • Você tem chaves estrangeiras ou CHEQUES em apples que não existem em oranges (ou vice-versa)?
  • Você precisa manter as chaves exclusivas em ambas as tabelas (portanto, não há apple pode ter o mesmo ID que algum orange )?

Se as respostas para essas duas perguntas forem:"sim" e "não" , mantenha as tabelas separadas (para que as restrições possam ser específicas da tabela).

Se as respostas forem:"não" e "sim" , mescle-os (assim você pode criar uma chave que abrange ambos).

Se as respostas forem:"sim" e "sim" , considere emular a herança:



Dados de pesquisa é um exemplo típico de tabelas que parecem semelhantes, mas devem ser mantidas separadas para que os FKs possam ser mantidos separados.

Especificamente, esta é a estratégia "todas as classes em tabelas separadas" para representar herança (também conhecida como categoria, subclasse, subtipagem, hierarquia de generalização etc.). Você pode dar uma olhada esta postagem para mais informações.