Tu peux aussi avoir une table :
Hierarchie(IdSection, IdPere, Nom);
IdSection est la PK et IdPere une FK.
Au sommet de la hiérarchie, IdPere = Null.
Cette solution est plus simple à mettre en oeuvre pour les INSERT, DELETE, UPDATE (qui mettent en jeu la hiérarchie), par contre certains SELECT peuvent être beaucoup plus complexes, sauf si :
- tu travailles sous ORACLE (CONNECT BY permet de se promener dans une hiérarchie), surtout en version 9i et encore mieux 10g où cette fonctionnalité a été enrichi à chaque étape.
- tu travailles avec une base qui supporte le WITH [RECURSIVE] (comme SQLServer 2005 par exemple), qui est encore plus puissant que le CONNECT BY de ORACLE.
Partager