Zajmuję się tworzeniem aplikacji sieci web, która używa nierelacyjnej bazy danych jako zaplecza (django-nonrel + AppEngine). Potrzebuję przechowywać niektóre dane hierarchiczne (projekty/podprojekt_1/podprojekt_N/zadania) i zastanawiam się, który wzór powinienem użyć. Na razie myślałem:Zalecenia z danymi hierarchicznymi na nierelacyjnych bazach danych?
- adjacency listy (przechowywanie nadrzędnego id elementu)
- zestawy zagnieżdżone (sklep lewo i wartości właściwe dla przedmiotu)
W moim przypadku, głębokość zagnieżdżenia dla zwykłego użytkownika nie przekroczy 4-5 poziomów. Ponadto, w interfejsie użytkownika, chciałbym mieć stronicowanie dla elementów na pierwszym poziomie, aby uniknąć ładowania zbyt wielu elementów przy ładowaniu pierwszej strony.
Z tego, co rozumiem do tej pory, zestawy zagnieżdżone są świetne, gdy hierarchia jest używana bardziej do wyświetlania. Listy rozgrywające są świetne, gdy edycja na drzewie odbywa się często. W moim przypadku wydaje mi się, że potrzebuję wyświetlania więcej niż edycja (przy użyciu zestawów zagnieżdżonych, nawet jeśli wyświetlacz działałby świetnie, powyższa strona może skomplikować rzeczy podczas edycji).
Czy masz jakieś przemyślenia i porady na podstawie doświadczeń z nierelacyjnymi bazami danych?