En un prototipo de base de datos, tengo un conjunto de campos (como nombre, descripción, estado) que se requieren en varias tablas funcionalmente diferentes.Los mismos campos en la mayoría de las tablas
Estos campos siempre tienen la misma funcionalidad de usuario final para etiquetado, visualización, búsqueda, filtrado, etc. No son parte de una restricción de clave externa. ¿Cómo se debe modelar esto?
puedo pensar en las siguientes variantes:
Cada tabla se lleva todos estos atributos. En este caso, ¿cómo los nombrarías? Lo mismo, en cada mesa, o con un prefijo de nombre de la tabla (como usrname, ProdName)
los trasladan a una mesa de atributos, añadir una clave externa a las tablas "núcleo", haciendo referencia a Attributes.PK
Como se indicó anteriormente, pero en lugar de una clave externa, use Attributes.PK como PK en la tabla principal correspondiente también.
Esta pregunta me hizo preguntarme si hay algo así como el concepto de herencia en el diseño de la base de datos. Puedo ver dónde sería útil tener una tabla "heredar" columnas y/o restricciones de otra tabla automáticamente. – MusiGenesis
Por "diseño de la base de datos" me refiero a la ingeniería del motor de la base de datos en sí, no al diseño de la base de datos de Northwinds. – MusiGenesis
Existen cosas como OODBMS (bases de datos orientadas a objetos) que son totalmente diferentes al RDBMS estándar, que sí tienen muchas operaciones tipo OO, como la herencia – Mark