調査Webアプリケーションがあります。調査には複数の選択肢がある質問があります。多肢選択問題への回答は、他の質問の回答に依存する場合があります。
例:
Question 1 has choices: HP, Acer, Samsung, Lenovo
Question 2 has choices: Android, Ubuntu, iOS, Windows
Question 3 has choices: Ubuntu, OS X, Windows
Question 4 has choices: Adidas, Nike, Puma
質問4は、質問1、2、および3の回答の組み合わせによって異なります。
例1:
人が答えた場合:質問1 = "HP"、質問2 = "Ubuntu"、質問3 = "OS X"; 質問4は自動的に「プーマ」に設定されます
例2:
人が答えた場合:質問1 = "Acer"、質問2 = "Ubuntu"、質問3 ="Ubuntu"; 質問4は自動的に「アディダス」に設定されます
*どちらの例も同じロジックです。
一般に、一部の調査質問の回答は、他の調査質問の回答に依存する場合があります。
その目的のためにデータベースをどのように設計/モデル化しますか?
これは私が作成した最初のテーブル関係です(自由に変更してください):
Users: user_id
Questions: question_id
Choices: choice_id, question_id
Answers: answer_id, user_id, question_id
追加情報:
私が考えている管理者ユーザーインターフェイスのプロセスは次のとおりです。
1. The admin creates several independent questions (questions which have answers independent of other questions' answer)
2. The admin creates a dependent question, selects one or many questions which he created earlier, selects a combination of answers from those question (just like in examples 1 and 2 above) and then sets an answer for the dependent question based on those combination of answers.
... The admin proceeds creating several more questions.
編集:
@MahmoudGamalのアイデアをありがとう。私はあなたのデザインに基づいた何かを作成しました:
Combinations table
ID
question_id # the dependent question's id
choice_id # the automatic answer based on the combination of other answers
Answer Combinations table
ID
combination_id
question_id # the question that is depended upon by the dependent question
choice_id # the choice that will be used for the combination
したがって、1つの質問に対して複数の組み合わせを使用できます。例:質問4で複数の組み合わせを受け入れたい場合。1つの組み合わせは異なる答えを持っています。
Answer Combinations table
ID combination_id question_id choice_id
1 1 1 1
2 1 2 2
3 1 3 3
4 2 1 2
5 2 2 2
6 2 3 1
そして、Combinationsテーブルには
Combinations table
ID question_id choice_id
1 4 4
2 4 3
私にはかなりきれいに見えます。どう思いますか?
PS:許してください、しかし私はStack Overflowに不慣れで、まだ自分の道を見つけています。