Metoda, której obecnie używasz, nazywa się modelem listy sąsiedztwa.
Innym modelem do przechowywania danych hierarchicznych w (relacyjnej) bazie danych jest model zestawu zagnieżdżonego. Jego implementacja w bazach SQL jest dobrze znana. Zobacz także ten artykuł, aby zapoznać się ze zmodyfikowanym algorytmem przechodzenia przez drzewo zamówień w przedsprzedaży.
Bardzo prosta metoda:możesz przechowywać ścieżkę dla każdego obiektu - dzięki nim powinno być łatwo przeszukiwać drzewa w bazach danych NOSQL:
{ path: "Color", ... }
{ path: "Color.Red", ... }
{ path: "Color.Red.Apple", ... }
{ path: "Color.Red.Cherry", ... }
Gdy węzły zostaną usunięte lub zmienione, niektóre ścieżki muszą zostać zaktualizowane. Ale ogólnie ta metoda wygląda obiecująco. Musisz tylko zarezerwować znak specjalny jako separator. Miejsce do przechowywania nad głową powinno być znikome.
edytuj:ta metoda nazywa się zmaterializowaną ścieżką
Na koniec porównanie różnych metod dla danych hierarchicznych w bazach danych NOSQL.