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








Répondre avec citation





N'oubliez pas le bouton
et pensez aux balises [code]
(suffisament pour que je ne me souvienne plus de quel produit il s'agissait), un SGBD qui réclamait que les colonnes et expressions utilsées dans la clause 
Partager