Zajmuję się tworzeniem aplikacji do Google App Engine, która wykorzystuje BigTable do przechowywania danych.Struktury drzewa w bazie danych nosql
Jest to aplikacja do wspólnego pisania opowiadania. To bardzo prosty projekt hobby, nad którym pracuję tylko dla zabawy. Jest open source i możesz go zobaczyć tutaj: http://story.multifarce.com/
Chodzi o to, że każdy może napisać akapit, który następnie musi zostać zatwierdzony przez dwie inne osoby. Opowiadanie może być również rozgałęzione w dowolnym akapicie, aby inna wersja historii mogła być kontynuowana w innym kierunku.
Wyobraźmy sobie następującą strukturę drzewa:
Każdy numer będzie pkt. Chcę móc wybrać wszystkie akapity w każdej unikalnej linii fabularnej. Zasadniczo te wyjątkowe wątki fabularne to (2, 7, 2); (2, 7, 6, 5); (2, 7, 6, 11) i (2, 5, 9, 4). Zignoruj, że węzeł "2" pojawia się dwa razy, po prostu wziąłem diagram struktury drzewa z Wikipedii.
Ja również schemat proponowanego rozwiązania: https://docs.google.com/drawings/edit?id=1fdUISIjGVBvIKMSCjtE4xFNZxiE08AoqvJSLQbxN6pc&hl=en
Jak mogę skonfigurować struktura jest wydajność skuteczna zarówno w formie pisemnej, ale przede wszystkim do czytania?
Tak, już nie zdecydowałem się na używanie list rozgałęzień (zbyt wysoki koszt odczytu) lub zestawów zagnieżdżonych (zbyt wysoki koszt zapisu). Twoje rozwiązanie brzmi dobrze. Wydaje mi się, że bałem się trzymać listy 200 kluczy na jednym elemencie, ale chyba nie powinno to stanowić problemu. Właściwie to już zaimplementowałem moje rozwiązanie i działa ono również bez żadnych problemów z wydajnością, więc prawdopodobnie użyję go przez jakiś czas i zobaczę, czy sensownym rozwiązaniem jest przejście do rozwiązania. – Blixt
Dzięki za wyjaśnienia, jest to bardzo pomocne. –