J'ai 2 tables dans ma base de données orders
y orderHistory
.
----------------- -----------------------
| orders | | orderHistory |
----------------- -----------------------
| orderID (PK) | | historyLineID (PK) |
| orderDate | | status |
| price | | quantity |
----------------- -----------------------
Aujourd'hui, un order
peut avoir plusieurs history lines
. Toutefois, un history line
ne peut exister seule. J'ai entendu dire qu'il s'agissait d'une entité faible et que, par conséquent, la PK de orders
doit faire partie de la PK de la table orderHistory
.
Questions
- S'agit-il vraiment d'une entité faible relation ? Existe-t-il d'autres moyens de les identifier ?
- Dois-je ajouter le PK de la table
order
à la tableorderHistory
et en faire une clé primaire composite ? - Au cas où je déciderais d'ajouter un nouvel enregistrement à
orderHistory
Comment ajouter une nouvelle clé composite ? (orderID
est disponible dans le tableauorders
perohistoryLineID
doit être incrémenté automatiquement). - Que se passe-t-il si je décide de modéliser cela comme une activité normale ? D'un à plusieurs relation où
orderID
est ajouté en tant que clé étrangère seulement Quels sont les inconvénients d'une telle démarche ? - Le fait d'ignorer les entités faibles posera-t-il des problèmes plus tard dans la conception, à condition que toutes les tables soient dans la troisième forme normale ?
Note
Les deux orderID
& historyLineID
sont des clés de substitution. Merci d'avance.