Php 是否将测验选项另存为JSON字符串或单个行?
我在做测验。每个问题包括一个问题、三个备选方案,其中一个是正确的。服务器应该输出HTML(而不是JS将要解析的JSON),用户选择一个答案 我之所以怀疑,是因为做测试的人是通过JSON发送备选方案的。如果您想在以后编辑任何备选方案,只需解析JSON,进行更改并将其发送到服务器。然后,服务器将只更新可选的“单元格” 但是,当用户进行测验时,服务器必须遍历数组才能找到正确答案。如果答案存储在各自独立的行(多对多)中,服务器就可以查询正确的答案 除此之外,如果使用多对多关系,与许多小型varchar相比,JSON将导致在文本列中保存替代项 最有效的方法是什么?(速度)Php 是否将测验选项另存为JSON字符串或单个行?,php,mysql,json,database-design,Php,Mysql,Json,Database Design,我在做测验。每个问题包括一个问题、三个备选方案,其中一个是正确的。服务器应该输出HTML(而不是JS将要解析的JSON),用户选择一个答案 我之所以怀疑,是因为做测试的人是通过JSON发送备选方案的。如果您想在以后编辑任何备选方案,只需解析JSON,进行更改并将其发送到服务器。然后,服务器将只更新可选的“单元格” 但是,当用户进行测验时,服务器必须遍历数组才能找到正确答案。如果答案存储在各自独立的行(多对多)中,服务器就可以查询正确的答案 除此之外,如果使用多对多关系,与许多小型varchar相
什么是最方便的方式,也是最被接受的方式呢?好吧,我得说你的桌子应该是这样的:
+------+------------+--------+--------+--------+--------------+
| ID | Question | Ans1 | Ans2 | Ans3 | CorrectAns |
+------+------------+--------+--------+--------+--------------+
| PKey | text | text | text | text | text |
+------+------------+--------+--------+--------+--------------+
| 1 | π = ? | 3.1415 | 2.2465 | 5.6598 | 3.1415 |
+------+------------+--------+--------+--------+--------------+
你的问题是:
SELECT (CorrectAns = %enteredanswer%) FROM QuizTable WHERE ID=%questionid%
将json转换为这个表非常容易,反之亦然
编辑:对于未定义数量的备选方案:
您可以有一个问题
表和一个选项
表,如下所示:
Question:
+-------+------------+---------------+
| QID | Question | CorrectAnsID |
+-------+------------+---------------+
| PKey | text | FKey,integer |
+-------+------------+---------------+
| 1 | π = ? | 2 |
+-------+------------+---------------+
Options:
+-------+--------------+--------------+
| OID | OptionText | QuestionID |
+-------+--------------+--------------+
| PKey | text | FKey,Integer |
+-------+--------------+--------------+
| 1 | 3.5600 | 1 |
+-------+--------------+--------------+
| 2 | 3.1415 | 1 |
+-------+--------------+--------------+
| 3 | 3.4567 | 1 |
+-------+--------------+--------------+
| 4 | 3.7894 | 1 |
+-------+--------------+--------------+
| 5 | 3.9874 | 1 |
+-------+--------------+--------------+
这可能比json方法更快,但更难实现(连接和编写内容),因此如果它是一个快速、规模更小的项目,我会选择json方法。谢谢您的回答。对不起,我的意思是有很多选择。。。但如果总是有三个答案,我认为这是一个很好的答案。也许是最好的方法。既然你不知道,我会投票并接受它,因为来自谷歌的其他人会得到正确的答案。嗯……如果你有一个未定义数量的备选方案,那么json方法更有意义。好的,最后我选择了这个版本。我只是在备选方案表中有一个正确的列,以防将来需要多个正确的列。。谢谢