Une méthode que j'utilise quand je ne suis pas contraint par les normes du client est la suivante : affecter un préfixe à chaque type d'entité et à chaque type d'association de cardinalité n (celles qui deviennent des tables donc). Ce préfixe est unique, codé sur 2 à 3 caractères selon la richesse du modèle.
L'avantage est qu'on retrouve très facilement l'origine des FK grâce à ce préfixe et que toute étude d'impact est également facilitée.
Le seul cas où j'utilise le rôle sur une patte de l'association est celui des assos reflexives type parent/enfant ou composant/composé
Exemple :
Pièce jointe 598662
Qui donne le script suivant (ici pour SQL server) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| CREATE TABLE CL_client(
CL_id INT IDENTITY,
CL_nom VARCHAR(50) NOT NULL,
CL_datecrea DATE NOT NULL,
PRIMARY KEY(CL_id)
);
CREATE TABLE FA_facture(
FA_ident INT IDENTITY,
FA_date DATE NOT NULL,
CL_id INT NOT NULL,
PRIMARY KEY(FA_ident),
FOREIGN KEY(CL_id) REFERENCES CL_client(CL_id)
); |
Partager