Considere una base de datos con tablas Productos y empleados. Existe un nuevo requisito para modelar a los gerentes de productos actuales, siendo el único empleado responsable de un producto, señalando que algunos productos son lo suficientemente simples o maduros para no requerir un gerente de producto. Es decir, cada producto puede tener cero o un gerente de producto.¿Estos estilos de diseño de base de datos (o antipatrón) tienen nombres?
Enfoque 1: alter table Product
para añadir una nueva columna NULL
capaces product_manager_employee_ID
de manera que un producto con ningún gerente de producto es modelado por el valor NULL
.
Enfoque 2: crear una nueva tabla con los no ProductManagers
NULL
columnas capaces product_ID
y employee_ID
, con una restricción única en product_ID
, por lo que un producto sin gerente de producto es modelado por la ausencia de una fila de esta tabla.
Hay otros enfoques, pero estos son los dos que parece encontrar más a menudo.
Suponiendo que estas son opciones de diseño legítimo (como me inclino a creer) y simplemente representan diferentes estilos, ¿tienen nombres? Prefiero el enfoque 2 y me resulta difícil transmitir la diferencia de estilo a alguien que prefiere el enfoque 1 sin emplear un ejemplo real (¡como lo he hecho aquí!) Sería bueno si pudiera decir: "Prefiero el inclinación hacia el estilo 6NF (o lo que sea) yo mismo ".
Suponiendo que uno de estos enfoques es de hecho un antipatrón (como sospecho que puede ser el caso para el acercamiento 1 al modelar una relación entre dos entidades como un atributo de una de esas entidades) ¿este antipatrón tiene ¿un nombre?
Punto justo pero no pretendía que se viera de esa manera. Ahora me he cansado de editar para aclarar mi intención de que cada producto tenga cero o un administrador de productos (para el método 2, esto requiere una restricción única en la identificación del administrador del producto solamente, creo). – onedaywhen