我试图创建一个包含表的数据库,该表将有多项选择测验的答案。我的问题是,为每个问题创建一个列是否正常?
我的意思是,如果我有100个问题,我是否为每个人创建了一个列?
对此最好的方法是什么?
谢谢
您可以参考此链接表:用户
表:问题
表:Question_choices
表:User_question_answer
为每个问题创建一行是正常的(在普通意义上和数据库规范化意义上)。在另一个表中为每个答案创建一行。
阅读数据库规范化。
您的question
表可能包含具有此值的列
question_id question_text
1 What color is the sky?
2 What number comes after 1?
并且您的answer
表可能包含具有此值的列
answer_id question_id correct answer_text
1 1 0 Green
2 1 1 Blue
3 1 0 Orange
4 2 0 -2
5 2 1 2
6 2 0 42
7 2 0 π
通过这样的设计,您可以根据需要添加任意数量的问题和答案,而无需更改表格的结构。
您可以检索正确的答案,例如,对于这样的每个问题
SELECT question_text, answer_text
FROM question
JOIN answer ON question.question_id = answer.question_id
WHERE answer.correct = 1