|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Stephen Inscription : mars 2009 Messages : 87 ![]() |
Bonjour,
Je me demandais si les associations réflexives étaient une mauvaise pratique en général. Exemple classique, une table Salarié, dont chaque champ est composé de : id, nom, prénom, supérieur_hiérarchique où supérieur_hiérarchique pointe sur un autre champ de la table salarié. La question est : cela pose-t-il problème de fonctionner ainsi, c'est à dire est-il faire une table de mariage qui gère cet appairage simple ? Exemple pratique : Code :
|
||
|
|
00
|
|
|
#2 | |||||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Steph0,
Citation:
De ce point de vue, ton exemple est significatif. Les données que tu présentes reflète ces règles de gestion :
Code :
Salarie(id, nom, ...)une table associative, à cause du fait qu'un salarié peut ne pas avoir de supérieur hiérarchique. En effet, la possibilité qu'une clé étrangère soit nulle est dangereuse performance, quota, etc...). A contrario, si tes règles de gestion avaient été :
Code :
Salarie(id, nom, #IdSalarieSuperieur,...)N.B : la solution de la table associative peut s'avérer payante, même dans le second cas : par exemple, si ton association (réflexive) doit posséder des attributs propres (date de collaboration entre idSalarie et IdSalarieSuperieur, ...).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||||
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Stephen Inscription : mars 2009 Messages : 87 ![]() |
Bonjour,
Merci pour votre réponse détaillée. Cela répond parfaitement à ma question (il s'agit du premier cas pour moi). Je retiens néanmoins que de manière générale une table associative reste la bonne solution, sans parler de bonnes ou mauvaises pratiques. Merci |
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 640 ![]() |
Citation:
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Fsmrel,
C'est vrai, et ma réponse était incomplète. Salarie(id, nom, ...)avec, dans un premier temps, un trigger qui contrôle idSalarie<>IdSalarieSuperieur. Dans un second temps, nous sommes dans la problématique des nomenclatures et je ne vois pas d'autre moyen que de créer un second trigger qui contrôle que les arborescences "ne se mordent pas la queue". C'est ce que font les GPAO, en général, avec les nomenclatures de produits finis.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 640 ![]() |
Une contrainte de table (CHECK) suffira.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com