Classe d'association avec clé locale

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é.

Emplois

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éthodeInté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))