Metoden du använder nu kallas för adjacency list model.
En annan modell för att lagra hierarkisk data i en (relationell) databas är den kapslade uppsättningsmodellen. Dess implementering i SQL-databaser är välkänd. Se även den här artikeln för den modifierade algoritmen för förbeställningsträdet.
En mycket enkel metod:du kan lagra en sökväg per objekt - med dem borde det vara lätt att söka efter träd i NOSQL-databaser:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }
När noder kommer att tas bort eller byta namn måste vissa sökvägar uppdateras. Men i allmänhet ser den här metoden lovande ut. Du behöver bara reservera ett specialtecken som avgränsare. Lagringsutrymmet över huvudet bör vara försumbart.
redigera:denna metod kallas materialiserad sökväg
Slutligen, här är en jämförelse av olika metoder för hierarkisk data i NOSQL-databaser.