3

150 を超える質問または 10 だけを含むことができるウィザードがあります。各質問は、以前に尋ねた質問とは異なる場合があります。たとえば、ある質問では「はい/いいえ」で答える必要がありますが、次の質問では 4 つのオプションを含む複数選択リストを含めることができます。また、このウィザードで尋ねられた質問に対して、完全にオープンな回答を記入する機会もあるはずです。ウィザードは複数のセクションで構成されています。

このウィザードの結果も評価する必要があります。例:「仕事に行くときに靴を履き忘れたことはありませんか?」「はい/いいえ」 ユーザーが「はい」と答えた場合は、これを評価して、ドアに靴を置いて二度と忘れないようにする必要があることを伝える必要があります。(例)

このウィザードの結果はデー​​タベースに保存する必要がありますが、これを 1 つのテーブルで行い、すべてのデータをこのテーブルに追加するだけでは、私にはまったく不便に思えます。たとえば、このようなウィザードを再構築する必要がある場合に、同じデータベースを使用できるようにするためのクリーンなソリューションを持っている人はいますか?

4

3 に答える 3

5

すべてを 1 つの大きなテーブルにまとめようとしてはいけません。私のデザインは次のようになります。

ウィザード

ID、名前、序文、AnyOtherInfoYouMightWantToStore

質問

Id、WizardId、質問、SortNumber

Id、QuestionId、TypeId (ラジオ、チェックボックス、フリーテキスト、複数行フリーテキスト...)、Name、SortNumber

返事

Id、UserId (ユーザー アカウント ソリューションがあると思います)、QuestionId、AlternativeId

ざっくりその通り。ウィザードには多くの質問を含めることができ、質問には多くの選択肢を含めることができます (はい + いいえラジオボタンは、選択肢テーブルのそれぞれ 1 つのレコードになりますが、いくつかのチェックボックスや、下部など、より複雑なことも実行できます)。 、「その他」テキストフィールド)

于 2010-01-15T08:06:55.267 に答える
5

Barry Williams は、データ モデルの無料ライブラリを維持しています。これには、4 つの異なるアンケートのモデルが含まれています。これらは、単純なものから複雑なものまでさまざまです。

彼の複雑なモデルは、あなたが始める場所のように見えます。ただし、(複数選択の特殊なケースとして扱うのではなく) はい/いいえの質問タイプを含めるように拡張することをお勧めします。フォローアップ テキストを格納するためのエンティティも追加する必要があります。

また、評価と応答プロセスを管理するために、何らかの形式のページフローまたはその他の制御構造が必要なようです。そのような制御情報がデータベースに属しているかどうかについては意見が分かれています。これはある程度好みの問題ですが、ウィザードを作成するために使用する言語には影響があります。

于 2010-01-15T08:07:55.593 に答える
2

ウィキペディアまたは別の Web サイトでデータベースの正規化について読むことをお勧めします。これに関するリソースはたくさんあります。

簡単に言うと、アンケート (質問票) 用のテーブルと質問 (質問) 用のテーブル、回答者 (回答者) 用のテーブル、回答 (回答) 用のテーブルがあります。

次に、2 つのテーブルをリンクして、質問を構成するアンケートを作成します。回答者は回答テーブルのレコードにリンクされ、回答テーブルは質問テーブルのレコードにリンクされます。

于 2010-01-15T08:27:16.843 に答える