在我提出问题之前,我只想感谢昨天回答我问题的所有人 - > Countdown using javascript
想法:
我使用php创建了一个测验,但是我想创建一个MySQL数据库并拥有一个包含所有问题,答案和存储在内的多项选择的表格。
问题:
由于测验是多项选择,我不知道如何在表格中存储多项选择。我可以存储选项并将每个答案用特殊字符分隔,让php获取字符串并分离选项吗?
Ex:问题:你最喜欢的颜色是什么?选项:蓝色=红色=紫色=黄色。(数据库视图)
你们认为这样的人最好的做法是什么?
答案 0 :(得分:2)
我认为最佳做法是使用多个表格。一个用于问题,一个用于答案。 answer
表将包含question_id
以及一个标志,无论它是否是正确的答案
看起来像这样
TABLE questions
FIELDS: id, text
TABLE answers
FIELDS: id, question_id, text, correct
对所有答案使用一个字段的问题是,您可能会意外地使用用于在答案文本内拆分的字符
答案 1 :(得分:2)
简单地说,创建两个表:
问题
question_id,问题
答案
answer_id,question_id,answer
现在,您可以使用 question_id
链接这两个表格答案 2 :(得分:2)
表:
测验
quiz id (pk)
quiz info (other columns)
<强>问题强>
question id(pk)
quiz id
question text
<强>答案强>
answer id(pk)
question id
answer text
要显示给定的问题,请在测验,问题和答案上加入。
编辑:您可以为“正确/错误答案(0/1)”添加列,也可以使用另一个表:
<强>解决方案强>
解决方案ID(pk)
问题id
回答id
我没有在answers
表中列出'正确答案',因为这不是很好的规范化。
答案 3 :(得分:2)
有几种解决方法:
答案 4 :(得分:2)
可能有很多可能的架构设计,但我的建议是这样的:
不要在表格中存储以逗号分隔的值。
此表包含测验。
测验表
这包含每个测验的问题。
问题表
这就是答案。
答案表
这为每个测验中的每个问题保留了正确的答案,换句话说,这是答案的关键。
Question_Answer_Correct Table
这包含用户列表。
用户表
这包含指定问题的用户答案。此处没有QuizID
,因为问题已在测验表上连接。
User_Answers表
答案 5 :(得分:2)
你有一个questions
表,如下所示:
id | question
0 Do you even lift?
id
为INT(11) PRIMARY_KEY AUTO_INCREMENT
,而question
为TEXT
。然后,您将拥有一个answers
表:
id | question_id | answer
0 0 Yes
1 0 No
2 0 Maybe
此处,question_id
是指questions
表中问题的ID。这些答案都属于一个问题。这被称为Has many
关系,因为一个问题有很多答案。
通常这样做。即使您没有使用框架(大部分都是为您完成工作),实现它也不是那么难。
希望这有帮助