La question est similaire à this question qui a été fermée. J'ai trouvé des réponses à deux questions très utiles dans mes activités, et ils ont fini par me conduisirent au manuel MongoDB qui présente 5 différentes façons de modéliser les structures d'arbres: https://docs.mongodb.com/manual/applications/data-models-tree-structures/
Alors que MongoDB n'est pas une base de données relationnelle, les modèles présentés sont applicables aux bases de données relationnelles, ainsi que d'autres formats tels que JSON. Vous avez clairement besoin de savoir quel modèle est bon en fonction des avantages/inconvénients présentés.
L'auteur de cette question a trouvé un solution qui combinait les modèles Parent et Materialized Paths. Maintenir la profondeur et le parent pourrait présenter quelques problèmes (logique supplémentaire, performance), mais il y a clairement des avantages pour certains besoins. Pour mon projet, Materialized Paths fonctionnera mieux et j'ai surmonté certains problèmes (tri et longueur de chemin) à travers des techniques de l'article this.
Ce que vous préconisez est le modèle de codage «chemin matérialisé». Cette approche est facile à comprendre mais est inefficace pour certaines opérations, voir http://vadimtropash.wordpress.com/2008/08/09/one-more-nested-intervals-vs-adjacency-list-comparison/ –
Ceci est un bonne question ... – anbanm