Modelado de base de datos para una entidad débil
Tengo 2 tablas en mi base de datosorders
yorderHistory
.
----------------- -----------------------
| orders | | orderHistory |
----------------- -----------------------
| orderID (PK) | | historyLineID (PK) |
| orderDate | | status |
| price | | quantity |
----------------- -----------------------
Ahora unorder
puede tener múltipleshistory lines
. Sin embargo, unhistory line
no puede existir por sí mismo. He oído que esto se llama una entidad débil y por lo tanto laPK desdeorders
debe ser parte de laPK de mesaorderHistory
.
Preguntas
¿Es esto realmente un correctoentidad débil ¿relación? ¿Hay otras formas de identificarlos?¿Debo añadir elPK de mesaorder
a la mesaorderHistory
¿Y convertirla en una clave primaria compuesta?En caso de que decida agregar un nuevo registro aorderHistory
, ¿cómo agregaré una nueva clave compuesta? (orderID
está disponible en la mesaorders
, perohistoryLineID
debe ser auto incrementado.)¿Qué pasa si decido modelar esto como un normal?Uno a muchos relación dondeorderID
se agrega como clave externasolamente ¿en lugar? ¿Cuáles son los contras de hacerlo?¿Ignorar las entidades débiles causará algún problema más adelante en un diseño siempre que todas las tablas estén en la 3ª forma normal?Nota
AmbosorderID
& historyLineID
Son llaves sustitutas. Gracias por adelantado.