Bonjour Miko95,
Il s'agit, en fait, de créer une "entité supérieure" à Identifiant/GroupeIdentifiant et à Route/GroupeRoute qui se comporterait comme un "fournisseur de clé primaire"...
Suggestion :
Route ---0,1---[Etre groupe]---1,1--- Route_Groupe ;
Route ---0,1---[Etre route]---1,1--- Route_Route.
==> trigger interdisant un Id_Route d'être présent dans Route_Groupe ET dans Route_Route.
donnant :
Route(Id_Route, ... {attributs communs aux groupes de routes et aux routes}) ;
Route_Groupe(#Id_Route, ... {attributs propres aux groupes de routes}) ;
Route_Route(#Id_Route, ... {attributs propres aux routes}).
Idem pour Identifiant :
Identifiant ---0,1---[Etre groupe]---1,1--- Identifiant_Groupe ;
Identifiant ---0,1---[Etre Identifiant]---1,1--- Identifiant_Identifiant.
==> trigger interdisant un Id_Identifiant d'être présent dans Identifiant_Groupe ET dans Identifiant_Identifiant.
donnant :
Identifiant(Id_Identifiant, ... {attributs communs aux groupes d'identifiants et aux identifiants}) ;
Identifiant_Groupe(#Id_Identifiant, ... {attributs propres aux groupes d'identifiants}) ;
Identifiant_Identifiant(#Id_Identifiant, ... {attributs propres aux identifiants}).
et, enfin :
Route ---0,n---[associer]---0,n--- Identifiant.
donnant :
Route_Identifiant(#Id_Route, #Id_Identifiant, ... {attributs propres aux associations route/identifiant}).
==> Id_Route et Id_Identifiant "pointant", indépendamment, sur un groupe de route/groupe d'identifiant ou sur une route/un identifiant.
Partager