モデル/エンティティを設定するときに、RDBMSの考え方から抜け出そうとしています。私はパフォーマンスに焦点を当てているので、これを正しくやりたいと思っています。モデル化する必要がある3つの異なるものがあります。
イベント-日付に発生し、人を招待し、投稿を関連付けます
人-文字列IDを持ち、名前を持っています
投稿-人はイベントに投稿します。投稿者と投稿者のイベントとの関係を維持する必要があります。
私の最初の考えは次のようなものに行くことでした
class Event
@PrimaryKey
Long id;
List<Key> personList;
List<Key> postList;
String name;
class Post
@PrimaryKey
Key id;
String details;
Key personWhoPosted;
class Person
@PrimaryKey
Key id;
String fbId;
String name;
アプリのメインクエリは、特定の人物に関連付けられているすべてのイベントを読み込みます。
このアプローチを完全に実装しましたが、データベースがベータテスターからの適度な量のデータでいっぱいになり始めるとすぐに、非常に多くのクエリとGETが発生するため、メインリストをロードするアクションが遅くなります。イベントごとに、投稿に対して別のクエリ/取得のセットを作成する必要がありました。投稿ごとに、関連する人物に対して他のクエリや取得をたくさん行う必要がありました。
私はこのビデオをメインリファレンスとして使用しています: http ://www.youtube.com/watch?v = AgaL6NGpkB8&list = WLB3249928DA0FA4AF&feature = mh_lolz
これらの関係を設定するための最良の方法は何ですか?1つのクエリと一連の並列取得への初期負荷を最小限に抑えるために、すべてをイベントにフラット化することを検討しています。