2012-01-13 17 views
1

私は動的なチェックリストのセットを持っています。ユーザがそれを選択すると、データベースに保存する必要があります。しかし、テーブルの属性は動的でなければなりません。したがって、チェックリストの値をテーブルの列として使用することはできませんでした。チェックリストは動的なのでだからパフォーマンスの問題がないようにデータベースを設計する方法を手伝ってください。ユーザーがダイナミックチェックリストの値とともに詳細を記入すると、すべての詳細がダイナミックを含むテーブルに保存されます。この問題に関するいくつかの提案をお願いします。 Viruzzoが言っていた通り動的な値で動的データベースを設計する方法

+0

「ダイナミック」であれば問題はありません。重要なのは、どのような方法でその値を参照できるのでしょうか?それらが(そして私がそうでないならば、私は非常に奇妙なシステムになります)あなたは関連テーブルを使用することができます。 – Viruzzo

+0

少し具体的にすることができますか?おそらく "動的な"テーブルとフィールドの例を提供していますか? –

答えて

3

、あなたがしなければならないすべては、このように、関係テーブルを作成することです:

**Table User** 
int ID 
String name 

**Table CheckBoxOptions** 
int ID 
String description 

**Table User-Checkbox-Relation** 
int UserID 
int CheckboxID 
boolean value 
int position 

次に、あなたがしなければならないすべては、各オプションの指定された関係テーブルへの一つのエントリを追加することですユーザーは彼の形をしています。読んでいるときは、関係テーブルを読んで、必要なユーザーIDを持つすべてのエントリを検索します。

Aaron Digullaが示唆したように、私の例では "int position"のようなフィールドを使用して、User-Checkbox-Relationにオプションの位置を保存できます。この方法では、フォームが提示されるたびに同じ順序でオプションを表示できます。 :)

+1

エントリをソートできるようにするには、 'User-Checkbox-Relation'テーブルに' position'を追加するとよいでしょう。 –

0

属性でXMLを作成し、データベースに保存してそこから取得し、属性を解析するか、配列型フィールドを作成して名前=値のペアをそこに格納します。

乾杯

0

これを解決するために多くの方法があります。

  1. ない点が存在しない場合に、各チェックリストは、すなわち(異なる場合はUSER_IDPOSITIONTEXTSTATUSでテーブルを作成することができます

  2. ユーザーがチェックリストのオプションのうちの選択肢しか選択できない場合は、あなたは、常にすべてのオプションを必要とし、あなたがあなた自身のデータ構造を使用することができ、テキストや状況によってエントリを検索する必要はありません場合はULDは

  3. すべてのオプションのためのテーブルを持っているとUSER_IDでテーブルを作成し、POSITIONOPTION_IDSTATUS BLOBとしてデータベースに保存します。利点:構造がどのように機能し、どのように見えるかは完全に自由です。欠点:新しい構造に移行することは地獄になるため、初めての方がよいでしょう。

関連する問題