Bonjour,
J'ai une table de 43 champs dont l'un d'eux met en place un niveau hiérarchique.
Est-il mieux de faire une vue hiérarchique de base avec la requête suivante :
Suivi d'une autre requête/vue pour avoir les autres infos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 WITH RecursiveQuery AS ( SELECT MonID, MonIDHierarchique, 0 Version FROM MaTableHierarchique UNION ALL SELECT MTH.MonID, MTH.MonIDHerarchique, RQ.Version + 1 FROM MaTableHirarchique MTH INNER JOIN RecursiveQuery RQ ON RQ.MonID = MTH.MonIDHerarchique) SELECT MonID, MonIDHerarchique, Version FROM RecursiveQuery
Ou bien tout mettre directement dans la vue hiérarchique comme ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT MonID, MonIDHerarchique, Version, Champ1, Champ2, ... FROM MaVueHierarchique MVH INNER JOIN MaTableHierarchique MTH ON MVH.MonID = MTH.MonID
La première organisation me parait plus légère à écrire mais plus lourde en ressources car ça demande de refaire un lien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 WITH RecursiveQuery AS ( SELECT MonID, MonIDHierarchique, 0 Version, Champ1, Champ2, ... FROM MaTableHierarchique UNION ALL SELECT MTH.MonID, MTH.MonIDHerarchique, RQ.Version + 1, MTH.Champ1, MTH.Champ2, ... FROM MaTableHirarchique MTH INNER JOIN RecursiveQuery RQ ON RQ.MonID = MTH.MonIDHerarchique) SELECT MonID, MonIDHerarchique, Version, Champ1, Champ2, ... FROM RecursiveQuery
La seconde organisation me parait un peu plus lourde à écrire mais plus rapide car un lien de moins que la première. Par contre toutes les données sont trimballées et ça c'est peut-être plus lourd.
Et justement je ne sais pas laquelle de ces 2 organisations est meilleure à utiliser...
Si vous avez des infos sur les avantages ou inconvénient de l'une ou de l'autre de ces organisations, je suis preneur pour argumenter et arbitrer mon choix...
Merci
Partager