Методът, който използвате в момента, се нарича модел на списък на съседство.
Друг модел за съхранение на йерархични данни в (релационна) база данни е моделът на вложен набор. Внедряването му в SQL бази данни е добре известно. Вижте също тази статия за модифицирания алгоритъм за обхождане на дърво за предварителна поръчка.
Много прост метод:можете да съхранявате път за всеки обект - с тях би трябвало да е лесно да заявявате дървета в бази данни на NOSQL:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }
Когато възлите ще бъдат премахнати или преименувани, някои пътища трябва да бъдат актуализирани. Но като цяло този метод изглежда обещаващ. Просто трябва да запазите специален символ като разделител. Мястото за съхранение отгоре трябва да е незначително.
редактиране:този метод се нарича материализиран път
И накрая, ето сравнение на различни методи за йерархични данни в NOSQL бази данни.