我试图创建一个包含表格的数据库,该表格将包含多项选择题的答案。我的问题是,为每个问题创建一个列是否正常?
我的意思是,如果我有 100 个问题,我会为每个问题创建一个列吗?
最好的方法是什么?
谢谢
您可以参考此链接表:用户
-
user_id自动整数
-
摄政时间日期时间
-
用户名 varchar
-
用户电子邮件 瓦尔查尔
-
用户通行证 瓦尔查尔
表:问题
-
question_id自动整数
-
问题瓦尔查尔
-
is_active枚举(0,1(
表:Question_choices
-
choice_id自动整数
-
question_id整数
-
is_correct_choice枚举(0,1(
-
选择瓦尔查尔
表: User_question_answer
-
user_id整数
-
question_id整数
-
choice_id整数
-
is_correct枚举(0,1(
-
answer_time日期时间
https://www.quora.com/What-is-a-good-database-schema-using-MySQL-for-storing-multiple-choice-questions
问题创建一行是正常的(无论是在普通意义上还是在数据库规范化意义上(。在另一个表中为每个答案创建一行。
阅读有关数据库规范化的信息。
您的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