Modelagem de banco de dados para uma entidade fraca
Eu tenho 2 tabelas no meu banco de dadosorders
eorderHistory
.
----------------- -----------------------
| orders | | orderHistory |
----------------- -----------------------
| orderID (PK) | | historyLineID (PK) |
| orderDate | | status |
| price | | quantity |
----------------- -----------------------
Agora umorder
pode ter múltiploshistory lines
. No entanto, umhistory line
não pode existir sozinho. Eu ouvi isso é chamado de uma entidade fraca e, portanto, oPK deorders
deve fazer parte doPK de mesaorderHistory
.
Questões
Isso é realmente correto?entidade fraca relação? Existem outras maneiras de identificá-los?Devo adicionar oPK de mesaorder
para mesaorderHistory
e torná-lo uma chave primária composta?Caso eu decida adicionar um novo registroorderHistory
, como adicionarei uma nova chave composta? (orderID
está disponível na tabelaorders
, mashistoryLineID
deve ser incrementado automaticamente.)E se eu decidir modelar isso como umUm para muitos relacionamento ondeorderID
é adicionado como uma chave estrangeirasó em vez de? Quais são os contras de fazê-lo?Irá ignorar as entidades fracas de alguma forma causar algum problema mais tarde em um projeto desde que todas as tabelas estejam na 3ª forma normal?Nota
AmbosorderID
& historyLineID
são chaves substitutas. Desde já, obrigado.