フォーラムを検索したところ、アンケートのデザインに関する投稿がいくつかありましたが、特定のトピックについて話し合いたいと思います。さらに、これは非常に一般的な設計上の問題です。
アンケートの回答をデータベースに保存したいと考えています。一部の応答はフリー テキスト (例: varchar) であり、その他の応答は複数選択 (例: FK) です。その違いをどのようにモデル化しますか?
私は2つのアプローチを見てきました-(詳細は忘れてください)。
アプローチ A: 2 つのテーブルを使用します。1 つはテキスト応答用で、もう 1 つは複数選択応答用です。
Table: text_response
some_stuff ----[*]
text ----------[varchar]
Table: mc_response
some_stuff ----[*]
optionID -----[FK to selected option]
*-not relevant to the disccussion... ResponseID, QuestionID, SurveyID, whatever
アプローチ B:両方のテーブルを「マージ」し、応答タイプに応じて 1 つの列のみを使用します。
Table response
some_stuff ----[*]
optionID -----[FK to selected option]
text ----------[varchar]
どちらを選択する必要がありますか (ある場合)? 議論を一般的で誰にとっても役立つものにするために、一般的な目的で賛否両論を述べたいと思いますが、それが何らかの文脈に役立つ場合は、非常に動的なアンケートシステムに使用します (ユーザーは独自の投票とクエリを作成できます)。私はパフォーマンスについてはあまり気にしませんが、コードの単純さと保守には気を配っています。