Bonjour,
Je fais la mise en place d'une petite prévision de trésorerie. Pour cela, au niveau du MPD, j'ai deux entités
BANQUE(Banq_Init, Banq_Desig, Banq_No, etc)
ECRITURE(Ecrit_Id, Ecrit_Date, Ecrit_Lib, Ecrit_Valeur, etc, #Banq_Init)
Les règles de gestion sont :
R1 - Chaque compte en banque est identifiée par plusieurs lettres, en principe les initiales du nom. En cas de doublons, deux comptes à une même banque, les initiales seront complétées par un numéro d'ordre. Exemple SG_1, SG_2 pour Société Générale
R2 - Chaque écriture comporte un numéro d'ordre et doit obligatoire être rattachée à un compte en banque
Les autres règles n'ont pas d'influence sur ma difficulté
Jusqu'ici, tout va bien mes tables sont normalisées en BCNF voire plus.
Si nous passons au niveau de la quincaillerie comme nous le dit gentiment fsmrel, plusieurs intervenants de ce forum indiquent qu'il est préférable d'utiliser, dans une jointure, une clé numérique. Or la clé de l'entité BANQUE est alphabétique.
Dans une premier temps, j'ai envisagé d'ajouté une clé numérique à l'entité. Le schéma deviendrait :
BANQUE(Banq_Id, Banq_Init, Banq_Desig)
ECRITURE(Ecrit_Id, Ecrit_Date, Ecrit_Lib, Ecrit_Valeur, etc, #Banq_Id)
Après cette modification, mon entité BANQUE n'est plus en BNCF et même pas en 3NF, d'où des soucis en perspective car je n'ai plus aucun contrôle pour m'assurer qu'il n'existe aucun doublons dans l'attribut Banq_Init.
Bien entendu, je peux mettre place, pour garantir l'unicité, une clé alternative ou un trigger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Banq_Id Banq_Init Banq_Desig Banq_No 1 SG_1 Société Générale 00051102675 2 SG_2 Société Générale 00051102680 Ici, nous commettons une erreur 3 SG_2 Société Générale 00051102685
Avez-vous une solution différente à me proposer pour répondre à la règle de gestion, respecter la normalisation et ne pas pénaliser l'exécution.
D'avance merci
Partager