長いhtmlページが1つあり、いくつかの質問セットが小さなセクション(1ページに約15のサブセクション)に分かれています。質問の合計は約100の質問です。入力、複数選択、チェックボックス、ラジオボタン、テキストエリア、およびファイルのアップロード。1つの質問には、チェックボックスのグループ、選択リストのグループ、複数選択のグループ、またはそれらすべてを1つの回答にまとめたもののいずれかから取得した多くの回答を含めることができます。私はこのデータベース設計を以下で使用するつもりだったが、結局のところそれは良いアプローチではないことがわかった。
- 1人の顧客は、1組の質問(100の質問につき1人の顧客)しか持てません。
- 古いアプローチでは、データベースに疑問を抱かず、代わりにPHPコーディングで定数として割り当てます。問題は、PHPの質問をデータベースの回答と同期させるために比較する必要があることです。1つの質問がPHPから変更/削除/移動された場合、質問データベースの回答と一致させるために間違いなく迷子になります。より良い解決策?
- フォームの複数の要素から取得した複数の回答を1つの回答として1つのフィールドに保持できますか?このフィールドを取得して、フォームで顧客が表示するために再度表示するにはどうすればよいですか?
- 下のどのオプションに行くべきですか?
オプション1:古いアプローチ(1テーブル)
表:アンケート
- ID(PK)
- 顧客ID
- 状態
- A1
- A2
- A3
- 。
- 。
- 。
- A100
オプション2:新しいアプローチ(2つのテーブル)
表:質問
- QID(PK)
- 質問(varchar)
表:回答
- 援助(PK)
- 顧客ID
- QID(int)
- 回答(varchar)
またはオプション3?