Mysql数据库设计,用于创建包含多个可能答案的测验,并使用文本字段进行解释
我们正在为在线测验创建数据库模式。向每个用户提出的问题类型很少,例如: 第一类问题。回答为是/否的问题 第二类问题。答案为“是/否”的问题。如果用户选择“是”,则用户必须写几句话来说明他为什么说“是” 第三类问题。答案为“是/否”的问题。如果用户选择“是”,则会给用户一些选择。i、 你的车是意外事故吗?如果用户选择“是”,则我们会显示诸如发动机故障、车身重新喷漆、洪水损坏、轮胎损坏等复选框。用户可以选择其中一个或多个选项 我们希望为此设计数据库,记住在在线测验中添加/删除/更新特定类型的问题应该是灵活的,并且应该快速检索数据以检查任何给定用户的答案 我们正在考虑以下DB设计: 表用户:Id | Name | Email | Mobile 表格问题:Id |类型|标题。(此表包含所有问题的列表) 表QuestionChoice:Id | QuestionId |值。(此表包含类型3问题的选择值,即发动机故障、车身重新喷漆等) 表UserResponse:Id | UserId | QuestionId | IsYes | TextForYes 我很少关心像表“QuestionChoice”中那样的问题,我们应该将每个值保存在单独的行中,还是可以将它们保存为逗号分隔的值,只保存在单行中Mysql数据库设计,用于创建包含多个可能答案的测验,并使用文本字段进行解释,mysql,database,database-design,Mysql,Database,Database Design,我们正在为在线测验创建数据库模式。向每个用户提出的问题类型很少,例如: 第一类问题。回答为是/否的问题 第二类问题。答案为“是/否”的问题。如果用户选择“是”,则用户必须写几句话来说明他为什么说“是” 第三类问题。答案为“是/否”的问题。如果用户选择“是”,则会给用户一些选择。i、 你的车是意外事故吗?如果用户选择“是”,则我们会显示诸如发动机故障、车身重新喷漆、洪水损坏、轮胎损坏等复选框。用户可以选择其中一个或多个选项 我们希望为此设计数据库,记住在在线测验中添加/删除/更新特定类型的问题应该
它是最好的数据库设计还是任何替代方案?用户: 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个答案,并且它不会改变,为什么不呢。我觉得这有点不切实际,但那只是我个人的喜好。