私は質問の束に答えることがいくつかのユニークな結果につながる推奨アンケートを作成する必要があります。途中での決定が最終結果に影響するはずです。リレーショナルデータベース:外部キーはどこに属しているのか?交代モデルの階層?
非常に基本的なものにするのはいいですから、Questions
とAnswers
という2つのモデルがあります。各質問には、2つの答えを持っている、と回答のそれぞれは、一つの他の質問につながる - そうhieararchyは、バイナリツリーのような一種のように終わるアウトグラフ:
Question 1
/ \
Answer 1 Answer 2
/ \
Question 2 Question 3
/ \ / \
Ans3 Ans4 Ans5 Ans6
...
だから、平易な英語で、私はそれぞれの質問ことを言うだろうhas many
の回答、それぞれの回答はhas one
親の質問とhas one
子供の質問です。
通常のhas many
の関係では、私はおそらくちょうどmany
エンドに外部キーを置き、one
の終わりを心配する必要はありません。ここではAnswer
はquestion_id
になりますが、これは一意である必要はありません。
has_one
の関係では、どちらの関係もうまくできているようですが、回答にはすでにquestion_id
が含まれています。その質問に多分置く「親」の答えのanswer_id
が適切であるが、それは辞書的に強大な混乱を招くようです - 代わりに...
私は直感的にそれがこの質問につながった回答だ理解できないでしょうQuestion.answer
のようなものを見て、私ができましたがAnswer
のモデルに入っていますが、どちらが「親の質問」で、どちらが「フォローアップの質問」であるかを区別する必要があります...
もう1つの考慮点は、 (答えに基づいて)データベースから「質問」を選択すると、表示可能な回答も得られます。パフォーマンスを最適化することは必須条件ではありませんが、「正しく」(または少なくとも完全に間違っているわけではありません)良いことでしょう。
どのような方法が最適ですか?
各質問には複数の回答があり、それぞれの回答には親の質問が1つあります(アンケートが終わった場合はいいえ)次の質問 – Beth