###前提・実現したいこと
質問・回答・回答補足の選択要素があるアンケートフォームのテーブル設計について、どのようにテーブル設計をするべきか悩んでおります。
例えば以下の様なフォームです。
■ Q1.今まで旅行したことある土地は?(選択肢から一つ選ぶ) <選択肢> ○ 北海道 ○ 東京 ○ 長野 ○ 京都 選んだ土地の詳細地域は?(任意) [ input box ]
■ Q2.好きなエディタは?(選択肢から一つ選ぶ) <選択肢> ○ Vim ○ Emacs ○ Atom ○ Sublime Text そのエディタのいいとろこは?(任意/複数選択あり) □ カスタマイズ性 □ 起動の速さ □ 憧れのあの人が使ってる
(例が悪くてすみません。。)
みたいなフォームで、質問内容や回答項目(選択肢)をDBのマスターを更新するだけで可変になるようにしたのです。(あくまで例です)
任意の部分に関しては、
- チェックボックスを使う質問と、
- インプットテキストの部分、
- 任意項目を設けない質問、
の3つがあります。
###やってみた設計
これで問題ないように思えるんですが、以下が不安要素として残っているので、質問させて頂きました。
- 3つテーブルを結合する中間テーブルを扱ったことがない&そのような事例もあまりみない
- 回答補足(任意回答項目)の中間テーブル(?)にユーザー入力用のデータをもたせた場合Null許可になって嫌な感じ
より良い設計があるのであれば皆さんのお知恵を頂きたい次第です。
宜しくお願いします。
質問に対する回答の上限数、および、回答に対する回答補足の上限数は設定しますか?
アンケートごとに補足の有り無しを設定しますか?
回答マスタって <選択肢> のことでしょうか? 回答というとユーザが選択した値っぽいイメージがあって少し悩みました。 回答mst の display_name に "北海道" とか入るんですかね…? 質問mst の display_name が "今まで旅行したことある土地は?" でしょうか。 実際に入る値の例とかもあるとイメージしやすい気がします。
追加・修正依頼有難うございます。質問に対する回答はラジオボタンで1つのみ選択出来る形です。回答補足は上限はなく、質問に対する回答数の上限はありません。アンケート毎に補足の有り無しは設定しますね。それも必要か・・。回答mstは選択肢mstですね・・すみませんわかりにくくて。実際作るシステムはアンケートでは無いのですが、性質は全く同じなので便宜上アンケートフォームとさせて頂きました。
まとめるとアンケート1に対して質問N個。質問1に対して、回答N個。回答1に対して回答補足N個って感じですかね?
質問1に対して回答は一つです。回答1に対して補足はN個であってます。またアンケート自体は一つだけで複数アンケートの管理は想定してないですね。
たくさんの回答ありがとうございました。とても勉強になりました!
回答3件
あなたの回答
tips
プレビュー