Les systèmes de gestion de bases de données relationnelles basés sur SQL ne conviennent que sous condition pour les requêtes hiérarchiques ou récursives. D'autres systèmes tels que ArangoDB sont meilleurs ici (il y en a eu beaucoup à ce sujet à GOTO 2016 ). Mais vous pouvez également générer des requêtes récursives en SQL à l'aide d' expressions de table communes et ainsi interroger les tables parent / enfant classiques pour tous les ancêtres et descendants.
Dans PostgreSQL, cela ressemble à ceci, par exemple:
0672c4761d202a35a9059fa137ace7c3
Si vous souhaitez obtenir tous les enfants d'un certain item_id, vous utilisez les expressions de table communes:
0672c4761d202a35a9059fa137ace7c3
Interroger les parents n'est pas non plus un problème:
0672c4761d202a35a9059fa137ace7c3