sql >> Base de Datos >  >> RDS >> Mysql

Ampliación de clases en la base de datos.

Le recomiendo encarecidamente que consulte la Herencia de tabla de clases patrón definido por Martin Fowler.

Este patrón de diseño crea una sola tabla que contiene los datos que son comunes a todos los edificios, por ejemplo, y luego requiere una tabla separada para cualquier dato relacionado con un tipo específico de edificio. Una cosa que encuentro útil es almacenar un campo de 'tipo' en la tabla principal para que sepa qué tipo de entidad tiene sin tener que buscar en las tablas secundarias los registros correspondientes.

Recomendaría que, a menos que tenga una razón muy específica y bien definida para usar un diseño de atributo de entidad, lo evite. Por un lado, cuando se usa este tipo de diseño, se vuelve imposible aprovechar las restricciones de la base de datos para controlar qué entradas se requieren y qué tipos de valores se permiten. Por otro lado, ralentizará drásticamente cualquier consulta que necesite extraer datos de esos tipos de campos porque los datos almacenados en esos campos no se pueden indexar como lo haría normalmente.