Ich habe eine Android-App, wo Benutzer in der Lage sind, private Nachrichten an einander zu senden. (zum Beispiel: A sendet eine Nachricht an B und C und die drei von ihnen können diese Nachricht kommentieren)Komplexität einer Abfrage im Google-Datenspeicher
Ich verwende Google App Engine und den Google Datastore mit Java. (Rahmen Objectify) Ich habe eine Member
Einheit und eine Message
Einheit erstellt, die ein ArrayList<String>
Feld enthält, das die recipienten'ids Liste darstellt. (das heißt das Schlüsselfeld der Member
Einheit)
Damit ein Benutzer alle Nachrichten erhält, wo er einer der Empfänger ist, plante ich, jede Message
Entität in den Datenspeicher zu laden und sie dann auszuwählen Überprüfen Sie, ob das Feld ArrayList<String>
die ID des Benutzers enthält. Aber wenn man bedenkt, dass Hunderttausende von Nachrichten gespeichert sind, fragte ich mich, ob das überhaupt möglich ist und ob das nicht zu viel Zeit in Anspruch nehmen würde.
Ist 'ofy(). Load(). Type (Message.class) .filter ('recipient =', myMemberId)' nicht tun, was Sie wollen? Wie viele Empfänger 'Mitglieder werden eine' Nachricht' realistisch haben? – tx802
Ich denke, das sollte die Arbeit tun, danke. Ich nehme an, dass eine "Nachricht" im Durchschnitt eine Empfängerliste von 8 Mitgliedern hat. Glauben Sie immer noch, dass Ihre Anfrage bequem ist? – Gannicus