Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql数据库设计,用于创建包含多个可能答案的测验,并使用文本字段进行解释_Mysql_Database_Database Design - Fatal编程技术网

Mysql数据库设计,用于创建包含多个可能答案的测验,并使用文本字段进行解释

Mysql数据库设计,用于创建包含多个可能答案的测验,并使用文本字段进行解释,mysql,database,database-design,Mysql,Database,Database Design,我们正在为在线测验创建数据库模式。向每个用户提出的问题类型很少,例如: 第一类问题。回答为是/否的问题 第二类问题。答案为“是/否”的问题。如果用户选择“是”,则用户必须写几句话来说明他为什么说“是” 第三类问题。答案为“是/否”的问题。如果用户选择“是”,则会给用户一些选择。i、 你的车是意外事故吗?如果用户选择“是”,则我们会显示诸如发动机故障、车身重新喷漆、洪水损坏、轮胎损坏等复选框。用户可以选择其中一个或多个选项 我们希望为此设计数据库,记住在在线测验中添加/删除/更新特定类型的问题应该

我们正在为在线测验创建数据库模式。向每个用户提出的问题类型很少,例如:

第一类问题。回答为是/否的问题

第二类问题。答案为“是/否”的问题。如果用户选择“是”,则用户必须写几句话来说明他为什么说“是”

第三类问题。答案为“是/否”的问题。如果用户选择“是”,则会给用户一些选择。i、 你的车是意外事故吗?如果用户选择“是”,则我们会显示诸如发动机故障、车身重新喷漆、洪水损坏、轮胎损坏等复选框。用户可以选择其中一个或多个选项

我们希望为此设计数据库,记住在在线测验中添加/删除/更新特定类型的问题应该是灵活的,并且应该快速检索数据以检查任何给定用户的答案

我们正在考虑以下DB设计:

表用户:Id | Name | Email | Mobile

表格问题:Id |类型|标题。(此表包含所有问题的列表)

表QuestionChoice:Id | QuestionId |值。(此表包含类型3问题的选择值,即发动机故障、车身重新喷漆等)

表UserResponse:Id | UserId | QuestionId | IsYes | TextForYes

我很少关心像表“QuestionChoice”中那样的问题,我们应该将每个值保存在单独的行中,还是可以将它们保存为逗号分隔的值,只保存在单行中


它是最好的数据库设计还是任何替代方案?

用户:

id |姓名|电子邮件|手机

问题:

id |标题|类型

选项

id |问题id |值

一个[questionId]对多个[value]

根据您拥有的数据量,以及选择[value]是否可用于多个问题,您可以创建一个表

id |名称

并做出如下选择:

id |问题id |价值id

用户回答

id |用户id |问题id |选择|选项id |输入

要么把三个问题都放在一张桌子上,要么把每一类问题放在一张桌子上。 [甚至一个表格用于输入,另一个表格用于选择/选项]

你不也想要一张表格来“链接”你的问题吗? [或使用代码(?)处理的部分]

链接问题:[发件人和收件人是问题ID,选择是/否]

从|到|选项ID |选择

请注意: 请尽量避免在单行中将数据保存为逗号分隔的值。 出于“好”的原因,这是一种不好的做法。
[即:管理您的数据将是一件痛苦的事情,sql是关系型的,并且更易于使用]

永远不要将任何内容保存为逗号分隔。如果只有一种类型的问题(多项选择)最多有4个答案,可以直接将答案值添加到问题表中吗<代码>id | title | answer1 | answer2 | answer3 | answer4?这是否会导致任何负面的结果,尽管只限于4个答案?如果你确定这将是这4个答案,并且它不会改变,为什么不呢。我觉得这有点不切实际,但那只是我个人的喜好。