Classe d'association avec clé locale
Rappel :
Contrainte inhérente à la relation N:M
Dans l'exemple suivant, chaque personne peut avoir un emploi dans plusieurs sociétés, mais elle ne peut pas avoir plusieurs emplois dans une même société.
La transformation en relationnelle est cohérente avec cette contrainte.
1
Société(...)
2
Personne(...)
3
Emploi(#personne=>Personne, #societe=>Societe, poste:string, salaire:integer, quotite:numeric(1,2))
Méthode : Intérêt de la clé locale
La spécification d'une clé locale dans emploi, par exemple ici le poste, permet de lever cette contrainte, lorsqu'on le souhaite, en permettant d'identifier chaque instance de l'association, ici l'emploi d'une personne par sa société.
La transformation en relationnelle permettra de maintenir la modélisation, en ajoutant la clé locale à la clé initiale
1
Société(...)
2
Personne(...)
3
Emploi(#personne=>Personne, #societe=>Societe, #poste:string, salaire:integer, quotite:numeric(7,2))