2

私のAndroidアプリでは、次のようなテーブルの形式でデータを一時的に保存する必要があります。

id | 列1| 2列目| ... | 列n

ユーザーがボタンを押すたびに、データがサーバーからダウンロードされます。ただし、ユーザーがサーバーからデータテーブルをダウンロードするたびに、データテーブルに固定数の列(および行)が設定されるわけではありません。たとえば、サーバーは最初に3列のデータを送信する場合があります。次に、2回目に5列のデータを送信する可能性があります。

このシナリオを考えると、データベースはおそらく使用するのに適切なデータ構造だと思います。私の計画は、データベースを作成し、必要に応じてテーブルを追加および削除することです。だから私はAndroidデータベースに関するさまざまなチュートリアルを読んでいます(1つの例はこれhttp://www.codeproject.com/Articles/119293/Using-SQLite-Database-with-Android#です)。sqliteデータベースを使用して可変数の列を持つ新しいテーブルを作成できないようです。これは正しいです?onCreate(SQLiteDatabase db)メソッドでは、「テーブルの作成」コマンドを既知の列数とそのデータ型で指定する必要があります。それぞれ異なる列数を持ついくつかの「テーブルの作成」コマンドを提供できますが、それは非常に大雑把に思えます。可変数の列を持つデータベーステーブルをその場で作成する方法はありますか?

おそらく複数のハッシュテーブルを使用する別の方法で、それぞれがデータテーブルの1つの列を格納します。データベースアプローチが不可能な場合、私はこのアプローチを真剣に検討しています。より良い提案を歓迎します。

4

1 に答える 1

5

SQLiteデータベースには可変数の列のようなものはありません。また、テーブルを動的に追加および削除することは、恐ろしいハックのように思えます。

IDに関連付けられた値の配列を格納したいようです。列ではなく、行の観点から考えることをお勧めします。(id、index、value);のようなテーブル構造を使用します。サーバーによって返される値の各配列は、値を格納するために必要な数の行になります。

于 2012-07-03T21:20:31.397 に答える