0

簡単に言えば、XML から次のようなデータを解析しました。

root ---- date1 ---- time 1 ----item 1 ---- prop 1 --- a
       |          |          |           |         |-- b
       |          |          |           |    
       |          |          |           |- prop 2
       |          |          |    
       |          |          |--item 2
       |          |
       |          |- time 2
       |
       |
       |- date2 ---- time 1

それぞれitemにいくつかのプロパティがあります (item1 に prop1 と prop2 があるように)

それぞれtimeにいくつかitemのがあります

それぞれdateにいくつかtimeのがあります

root にはdate子としていくつかの があります

そして、私はこのデータを使用したい:

各日付内のコンテンツをユーザーに表示できます。たとえば、date1が現在の日付の場合、ユーザーごとにでitem並べ替えて表示しtime、これらのデータの種類を Android の Google カレンダーのアジェンダ ビューのように表示します。

では、これを実現するためにどのデータ構造を使用すればよいでしょうか?

私が考えた候補は次のとおりです。

  1. ネストされた HashMap などHashMap<Time, HashMap<item1, HashMap<prop1, a>>>;
  2. SQL データベース、それぞれのテーブルを作成し、行、列にtime配置しますitemprop

このアプリは、データを保存するときにツリーのような構造を厳密に保持しなくてもまったく問題ないので、SQL データベースの方が好みです。より良い解決策を教えてください。

このアプリは Android で実行されます。ご協力ありがとうございます。

アップデート

データベース構造についての私の考え:

各日付のデータベース テーブルを作成します。

次に、各 DB テーブルで:

        time    prop1    prop2    prop3
item1
item2
...

その後、後でon baseitemを使用して s を取得できます。selecttime

UPDATE2 一部のアイテムが同じである可能性があるため、日付のテーブルを作成する必要があります。2 つの同じ会議を 1 週間の異なる日に開催したと想像してください。テーブルを作成してデータベースに入れるitemだけでなく、元の XML からそれらの情報を抽出するのは難しいため、それぞれのテーブルを作成することはできません。date

4

2 に答える 2

0

私のアプローチは、XML を解析して得られたオブジェクトを取得し、すべてのデータを SQLite に正しく格納する役割を担う DAO (データ アクセス オブジェクト) を作成することです。DAO は、SQLite データからオブジェクトを再作成する責任も負います。

ただし、この翻訳はあなたが言ったほど簡単ではないことに注意してください. 「毎回テーブルを作成し、アイテムを行に配置し、列に小道具を配置する」と言いました。通常、特定のエンティティのインスタンスごとにテーブルを作成しないため、これは標準の DB モデルではありません。

エンティティ (日付、時間、アイテムなど) を分析することから始めて、それらの間の関係 (データに 1 つ以上の時間が含まれている、時間に 1 つ以上のアイテムが含まれているなど) を分析します。通常、各エンティティは DB 上のテーブルになり、関係は既存のテーブル内に (他のテーブルへの参照として) 入るか、独自のテーブルを持つことになります。このアプローチの詳細については、http: //en.wikipedia.org/wiki/Entity%E2%80%93relationship_modelを参照してください。

于 2012-11-14T10:16:17.977 に答える
0

すべてのテーブルを 1 つ作成し、必要に応じてデータを取得するための日付列を作成します。すべての日付のテーブルを作成するなど、複雑にする必要はありません。

于 2012-11-14T10:47:04.613 に答える