Il metodo attualmente in uso è chiamato modello elenco di adiacenza.
Un altro modello per archiviare dati gerarchici in un database (relazionale) è il modello a insiemi nidificati. La sua implementazione nei database SQL è ben nota. Vedi anche questo articolo per l'algoritmo di attraversamento dell'albero di preordine modificato.
Un metodo molto semplice:potresti memorizzare un percorso per oggetto - con quelli dovrebbe essere facile interrogare alberi nei database NOSQL:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }
Quando i nodi verranno rimossi o rinominati, è necessario aggiornare alcuni percorsi. Ma in generale, questo metodo sembra promettente. Devi solo riservare un carattere speciale come separatore. Il sovraccarico dello spazio di archiviazione dovrebbe essere trascurabile.
modifica:questo metodo è chiamato percorso materializzato
Infine, ecco un confronto tra diversi metodi per i dati gerarchici nei database NOSQL.