Modélisation d'un arbre hiérarchique
Bonjour,
J'ai hésité à poster ma question dans le forum de SQL mais je pense qu'elle a plus rapport à de la conception.
Le but est de modéliser un arbre de catégories/sous-catégories, de profondeur variable, pour une base de données de produits stockée dans une base PostgreSQL.
J'ai lu pas mal de choses sur la façon de modéliser un arbre hiérarchique dans une base : relation simple avec champ parent_id, plusieurs relations, utilisation des CTE, de requêtes récursives et de WITH, utilisation de ltree, utilisation de la méthode par ensembles emboités, etc. J'avais opté pour cette dernière méthode dans mon ancienne base mais la technique est lourde à gérer, notamment lors de l'insertion ou du déplacement de catégorie(s).
Une de mes problématiques est que je travaille avec Django et son ORM, pratique pour des taches basiques monotables mais nettement plus retors dès lors que l'on cherche à exploiter des fonctionnalités avancées de la base ; une base de données est optimisée, plus efficace, plus puissante et nettement plus rapide qu'un ORM. Je préfère nettement écrire une procédure stockée, une fonction ou mettre en place un trigger plutôt que d'utiliser la fonction tortueuse d'un ORM.
J'ai donc deux questions :
1 - Quelle est la meilleure méthode pour modéliser un arbre hiérarchique dans une base SQL comme PostgreSQL ?
2 - Qu'elqu'un a t-il eu à gérer cette problématique en utilisant le couple PostgreSQL/Django ?
Vincent