Zastanawiam się, jaki byłby najlepszy sposób zaprojektowania aplikacji społecznościowej, w której członkowie podejmują działania i śledzą działania innych członków za pomocą Google AppEngine.Jak zaprojektowałbyś magazyn danych AppEngine dla serwisu społecznościowego, takiego jak Twitter?
Aby być bardziej konkretny pozwala zakładać mamy te podmioty:
- Użytkownicy, którzy mają przyjaciół
- Inne które stanowią działania podejmowane przez użytkowników (powiedzmy, że każdy ma wiadomość ciąg i ReferenceProperty do właściciela, lub może korzystać z powiązania rodzicielskiego za pośrednictwem klucza aplikacji)
Najtrudniejsze jest śledzenie aktywności twojego przyjaciela, co oznacza agregowanie najnowszych działań ze wszystkimi Twoimi przyjaciółmi. Normalnie byłoby to połączenie między tabelą działań i twoją listą przyjaciół, ale to nie jest opłacalny projekt na appengine, ponieważ nie ma symulacji łączenia, będzie to wymagało odpalania zapytań N (gdzie N jest liczbą znajomych), a następnie scalania w pamięci - bardzo drogie i prawdopodobnie przekroczy termin składania wniosków ...)
Mam zamiar wprowadzić tę kolejkę do skrzynki odbiorczej, gdzie utworzenie nowego działania uruchomi proces w tle, który umieści klucz nowego działania w "skrzynce odbiorczej" "każdego następnego użytkownika:
- Getting«Wszyscy użytkownicy, którzy podążają X»jest możliwe kwerendy AppEngine
- Niezbyt kosztowne wejście wsadowe do nowej jednostki "Odebrane", która zasadniczo przechowuje krotki (klucz użytkownika, klucz aktywności).
będę szczęśliwy słyszał myśli o tym wzorem lub alternatywnych sugestie itp
Szukałem tego samego problemu i znalazłem tę znakomitą (!) Prezentację z AppEngine, którą podali w Google I/O: http://www.scribd.com/doc/16952419/Building-scalable-complex -apps-on-app-Engine Mam nadzieję, że również ci się to przyda. –