De methode die u momenteel gebruikt, wordt het model van de aangrenzende lijst genoemd.
Een ander model om hiërarchische gegevens op te slaan in een (relationele) database is het geneste setmodel. De implementatie ervan in SQL-databases is bekend. Zie ook dit artikel voor het gewijzigde pre-order tree traversal-algoritme.
Een heel eenvoudige methode:je zou een pad per object kunnen opslaan - hiermee zou het gemakkelijk moeten zijn om bomen in NOSQL-databases te bevragen:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }
Wanneer knooppunten worden verwijderd of hernoemd, moeten sommige paden worden bijgewerkt. Maar over het algemeen ziet deze methode er veelbelovend uit. U hoeft alleen een speciaal teken als scheidingsteken te reserveren. De overhead van de opslagruimte moet verwaarloosbaar zijn.
edit:deze methode heet gematerialiseerd pad
Ten slotte is hier een vergelijking van verschillende methoden voor hiërarchische gegevens in NOSQL-databases.