さまざまな質問セットを作成し、回答を保存したい
これは私が試したものです
表の質問 ID、名前
テーブル フィールド ID、ラベル
テーブル関係 ID、質問 ID、フィールド ID
これはうまく機能しますが、質問の表示部分のみですが、回答の保存はどうですか? 参照(列名)がないため、回答を水平方向に保存できません。また、垂直方向はデータベースにとって非常に悪いのでしょうか?
私はmysqlを使用しています。これを行う最良の方法は何ですか?どうも!
さまざまな質問セットを作成し、回答を保存したい
これは私が試したものです
表の質問 ID、名前
テーブル フィールド ID、ラベル
テーブル関係 ID、質問 ID、フィールド ID
これはうまく機能しますが、質問の表示部分のみですが、回答の保存はどうですか? 参照(列名)がないため、回答を水平方向に保存できません。また、垂直方向はデータベースにとって非常に悪いのでしょうか?
私はmysqlを使用しています。これを行う最良の方法は何ですか?どうも!
answer を保存するテーブルを 1 つ追加するだけです。
question_id PK INT
user_id PK INT <-- or maybe anything that identifies the user
field_id PK INT
answer VARCHAR <-- or TEXT , depends on your usage
すべての結果を返すには (回答テーブルの名前が であると仮定しますtbl_answer
):
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
特定のユーザーの結果を返すには:
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
WHERE user_id={user id here}
特定の質問の結果を返すには:
SELECT `c.name` AS question, b.label, answer FROM tbl_answer a
LEFT JOIN fields b ON a.field_id=b.id
LEFT JOIN questions c ON a.question_id=c.id
WHERE question_id={question id here}
もちろん、結果をさらに処理する必要があります。
単純。
回答を保存する別のテーブルが必要です。
id question_id field_id (回答)
「回答」を人や回答中のアンケートなどに関連付けるために、おそらくもう 1 つのフィールドも必要になるでしょう。