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

Estendendo classes no banco de dados


Eu recomendo fortemente que você veja a Herança de tabela de classe padrão definido por Martin Fowler.

Esse padrão de design cria uma única tabela que contém os dados comuns a todos os edifícios, por exemplo, e requer uma tabela separada para todos os dados relacionados a um tipo específico de edifício. Uma coisa que acho útil é armazenar um campo 'tipo' na tabela pai para que você saiba que tipo de entidade você tem sem precisar pesquisar nas tabelas filhas os registros correspondentes.

Eu recomendaria que, a menos que você tenha um motivo muito específico e bem definido para usar um design Entity-Attribute, você o evite. Por um lado, torna-se impossível, ao usar esse tipo de design, aproveitar as restrições do banco de dados para controlar quais entradas são necessárias e quais tipos de valores são permitidos. Por outro lado, diminuirá drasticamente qualquer consulta que precise extrair dados desses tipos de campos porque os dados armazenados nesses campos não podem ser indexados como você faria normalmente.