0

私は映画の SQLite db の次のデータ構造を持っています (私はそれを単純に保ちます、実際のテーブルにはより多くのフィールドがあります):

  • ジャンル - (id , name)
  • 映画 - (id、genreId、名前、年)
  • シーン - (id , movieId , name)

例えば:

  • ジャンル - (7、スリラー)
  • 映画 - (250、7、シックスセンス、1999)
  • シーン - (15 、 250 、死んだ人が見える)

Android アプリの SQLite db にデータを保存しています。関連データを取得するために使用するデータ マネージャー クラスがあります。

次のことができる必要があります。

  • すべてのジャンルを取得
  • ジャンルIDごとにすべての映画を取得します(+さまざまなフィールドに従ってソートする機能)
  • 映画IDに従って特定の映画アイテムを取得する
  • ムービー ID に従ってすべてのシーンを取得する
  • ...

パフォーマンスに関して、このデータにアプローチするためのより良い方法は何ですか:

  1. データを取得する必要があるたびに SQLite クエリを実行します。
  2. データベースからデータを一度取得した後、それを配列リストに格納してメモリに保持します。たとえば、ジャンルのArrayListで、GenreオブジェクトがMovieオブジェクトの配列リストを保持しています...
  3. オプション 2 と同じですが、ハッシュ マップを使用します。その場合 - マップをループするとき、オブジェクトの順序を制御する方法はありますか?
  4. 頭に浮かぶ他のオプションはありますか?
4

1 に答える 1

0

通常、データベースからデータを取得し、CursorAdapter を使用して ListView でデータを表します。ということで、これが一番効果的だと思います。テーブルに異なるアクティビティがある場合、アクティビティが破棄されるまで、データはメモリに保存されます。

于 2012-07-27T08:41:25.710 に答える