Php 是否将测验选项另存为JSON字符串或单个行?

Php 是否将测验选项另存为JSON字符串或单个行?,php,mysql,json,database-design,Php,Mysql,Json,Database Design,我在做测验。每个问题包括一个问题、三个备选方案,其中一个是正确的。服务器应该输出HTML(而不是JS将要解析的JSON),用户选择一个答案 我之所以怀疑,是因为做测试的人是通过JSON发送备选方案的。如果您想在以后编辑任何备选方案,只需解析JSON,进行更改并将其发送到服务器。然后,服务器将只更新可选的“单元格” 但是,当用户进行测验时,服务器必须遍历数组才能找到正确答案。如果答案存储在各自独立的行(多对多)中,服务器就可以查询正确的答案 除此之外,如果使用多对多关系,与许多小型varchar相

我在做测验。每个问题包括一个问题、三个备选方案,其中一个是正确的。服务器应该输出HTML(而不是JS将要解析的JSON),用户选择一个答案

我之所以怀疑,是因为做测试的人是通过JSON发送备选方案的。如果您想在以后编辑任何备选方案,只需解析JSON,进行更改并将其发送到服务器。然后,服务器将只更新可选的“单元格”

但是,当用户进行测验时,服务器必须遍历数组才能找到正确答案。如果答案存储在各自独立的行(多对多)中,服务器就可以查询正确的答案

除此之外,如果使用多对多关系,与许多小型varchar相比,JSON将导致在文本列中保存替代项

最有效的方法是什么?(速度)
什么是最方便的方式,也是最被接受的方式呢?

好吧,我得说你的桌子应该是这样的:

+------+------------+--------+--------+--------+--------------+
|  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方法更有意义。好的,最后我选择了这个版本。我只是在备选方案表中有一个正确的列,以防将来需要多个正确的列。。谢谢