私は映画の SQLite db の次のデータ構造を持っています (私はそれを単純に保ちます、実際のテーブルにはより多くのフィールドがあります):
- ジャンル - (id , name)
- 映画 - (id、genreId、名前、年)
- シーン - (id , movieId , name)
例えば:
- ジャンル - (7、スリラー)
- 映画 - (250、7、シックスセンス、1999)
- シーン - (15 、 250 、死んだ人が見える)
Android アプリの SQLite db にデータを保存しています。関連データを取得するために使用するデータ マネージャー クラスがあります。
次のことができる必要があります。
- すべてのジャンルを取得
- ジャンルIDごとにすべての映画を取得します(+さまざまなフィールドに従ってソートする機能)
- 映画IDに従って特定の映画アイテムを取得する
- ムービー ID に従ってすべてのシーンを取得する
- ...
パフォーマンスに関して、このデータにアプローチするためのより良い方法は何ですか:
- データを取得する必要があるたびに SQLite クエリを実行します。
- データベースからデータを一度取得した後、それを配列リストに格納してメモリに保持します。たとえば、ジャンルのArrayListで、GenreオブジェクトがMovieオブジェクトの配列リストを保持しています...
- オプション 2 と同じですが、ハッシュ マップを使用します。その場合 - マップをループするとき、オブジェクトの順序を制御する方法はありますか?
- 頭に浮かぶ他のオプションはありますか?