ホームページ > バックエンド開発 > PHPチュートリアル > このようなアンケートプログラムに最適なデータベースの設計方法を教えてください。

このようなアンケートプログラムに最適なデータベースの設計方法を教えてください。

WBOY
リリース: 2016-06-23 14:03:39
オリジナル
917 人が閲覧しました

アンケートには 500 の質問があり、各質問には 5 つの選択肢があります。一部の ABCDE は通常の選択肢ですが、一部の質問の E 選択肢はユーザーが入力する必要があります。以下の通り:
1. あなたの職業上の肩書
A.111
B.222
C.333
D.444
E.555

2. あなたの学校
A.111
B.222
C.333
D. 444
E. その他 (具体的に: _________)

このアンケートには次のことが必要です
1. 各質問の各選択肢に何人の候補があるかを数えることができる。
2. 各質問に対する各ユーザーの選択を表示できます (アンケートを印刷する必要があります)

今後の選択を容易にするために、そのようなデータベースを合理的に設計する方法を教えてください。

最も愚かな方法 (私の最初の反応) は、500 を超えるフィールドを持つテーブルを作成することです
ID ユーザー ID ユーザー名 timu1 timu2 timu3 …… timu500
フィールドが多すぎるため、質問によっては他のフィールドを選択し、それらを示してください コンテンツ フィールドはまだカウントされていません。

助けてください、英雄たち。


ディスカッションへの返信 (解決策)

500 個のフィールドは必要ありません。1 つで十分です。フォーマットされたデータとともに保存するだけです

しかし、最も重要なことは、テーブルを設計するだけです。統計を容易にする

mysql フィールド数は 4096 バイト未満、行長は 65535 バイト未満
したがって、使用可能なフィールドの実際の数は、フィールド幅、エンコーディング タイプなどを考慮して決定する必要があります

質問

質問ということは、もちろん、その一部だけを表示することも可能です (ページネーションや質問のジャンプなど)。この場合、質問はすべて読み上げられるため、フィールドに分割する必要はありません。json または xml をフォーマットするだけで、作業負荷をデータベースに任せることはありません

アンケートではありませんが、質問バンクとは、アンケートを作成するときに、これらの質問からいくつかの質問を選択して、フィールドの質問ではなく、記録の質問として扱われることを意味します

では。また、アンケートを実施する場合(試験も同様の性質のものです)、最も重要なのはアンケートではなく解答用紙であり、アンケート部分が読めて、解答用紙を完全に参照できれば十分です。もちろん、一部のアンケートのロジックは非常に複雑です (質問のスキップや質問間の選択肢が関連しているなど) が、それはまた別の話です

私の提案は、統計を容易にするために回答用紙のフォームを作成することに時間を費やすことです。解答用紙を詳細に分析する必要がある場合、単一の「クロス分析」が元の解答用紙の設計を覆す可能性があります。この問題に対処するとき、それはアンケートに関する質問ですか?

アンケートとは、すべての質問を読み上げる必要があることを意味します (ページネーションやジャンプ質問などの操作)。この場合、すべての質問を読み上げる必要があるため、フィールドを json や xml などでフォーマットするだけで済みます。ワークロードをデータベースに任せることはありません

アンケートでない場合は、しかし、質問バンクとは、アンケートを作成するときに、これらの質問からいくつかの項目を選択する必要があることを意味します。この場合、それはフィールドの問題ではなく、記録の問題です...
ありがとう、どうすればよいですか。統計の利便性を考慮してデータベースを合理的に設計していますか?初心者なのでアドバイスをお願いします。

私の提案は、統計手法が異なる限り、異なるテーブルを分離することです

たとえば、調査Aと調査Bが異なる統計手法を使用している場合、2つのテーブルを分離します
統計手法が同じであれば、それらを配置できます同じテーブルに追加して各フィールドで AB を区別します

統計手法の違いがデータベースの読み込みに関係しない場合、たとえば、すべてを配列に読み込んで異なる手法を使用する場合、テーブルを分割する必要はありません

Iアンケート、回答用紙、ロジックを別々に使用していました

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート