Mysql ';问题';和';答案';有多个答案
这个问题与这个帖子有关: 我有一个调查应用程序,大多数问题的答案都是1-5。现在我们要做的问题可能有各种不同的答案类型——数字、日期、字符串等等。多亏了stack的建议,我用了一个字符串列来存储答案。有些问题是多项选择题,所以除了“问题”表外,我还有一个“答案”表,其中包含一个问题的可能答案集Mysql ';问题';和';答案';有多个答案,mysql,sql,rdbms,rdbms-agnostic,Mysql,Sql,Rdbms,Rdbms Agnostic,这个问题与这个帖子有关: 我有一个调查应用程序,大多数问题的答案都是1-5。现在我们要做的问题可能有各种不同的答案类型——数字、日期、字符串等等。多亏了stack的建议,我用了一个字符串列来存储答案。有些问题是多项选择题,所以除了“问题”表外,我还有一个“答案”表,其中包含一个问题的可能答案集 现在:我应该如何存储“选择所有适用的”问题的答案?我应该制作一个“选择答案”或类似的子表吗?或者答案表是否应该有一个“已选择”列,表明受访者选择了该答案?一个可能的解决方案是一个UsersAnswers
现在:我应该如何存储“选择所有适用的”问题的答案?我应该制作一个“选择答案”或类似的子表吗?或者答案表是否应该有一个“已选择”列,表明受访者选择了该答案?一个可能的解决方案是一个UsersAnswers表,它有4列:主键、用户id、问题id和答案id
对于可以选择多个答案的任何问题,都有多个条目一个可能的解决方案是一个UsersAnswers表,它有4列:主键、用户id、问题id和答案id
任何问题都有多个条目,可以选择多个答案我有两条建议
question\u answer
的表,或更符合您的模式命名法的表。这就是我的布局
CREATE TABLE question_answer (
id INT NOT NULL AUTO INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
question_id INT NOT NULL,
answer_id INT NOT NULL
);
答案
表中创建五列,每列都指向特定答案。在MySQL中,我将使用设置这些列为位(1)
值除非你看到选择的数量改变,否则我会坚持选择2。这是一个更快的选择,很可能也会节省您的空间。我有两个建议
question\u answer
的表,或更符合您的模式命名法的表。这就是我的布局
CREATE TABLE question_answer (
id INT NOT NULL AUTO INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
question_id INT NOT NULL,
answer_id INT NOT NULL
);
答案
表中创建五列,每列都指向特定答案。在MySQL中,我将使用设置这些列为位(1)
值除非你看到选择的数量改变,否则我会坚持选择2。这是一个更快的选项,很可能也会节省您的空间。由于您不会选择太多选项,我会尝试将答案存储为字符串答案列中以逗号分隔的值列表
如果用户从网页上带有问题的一组复选框中选择答案(假设它是一个web应用程序),那么您也会从中返回一个逗号分隔的列表。(虽然您不能将列表作为字符串进行比较,因为答案“red,blue”与“blue,red”相同)由于您不会选择太多选项,我会尝试将答案存储为字符串答案列中以逗号分隔的值列表
如果用户从网页上带有问题的一组复选框中选择答案(假设它是一个web应用程序),那么您也会从中返回一个逗号分隔的列表。(虽然你不能仅仅将列表作为字符串进行比较,因为答案“红色,蓝色”与“蓝色,红色”相同。)另一种选择(我也见过这样的问题是如何评分的),就是将每个可能的答案作为一个单独的是/否问题,并记录受试者的回答(选择或不选择)作为一个布尔值 另一种选择(我也见过这样的问题是如何评分的),是将每个可能的答案作为单独的是/否问题处理,并将受试者的回答(选择或不选择)记录为布尔值 这些调查问题总是有一个通用的答案:这取决于你完成后想对答案做什么。 例如,如果您只想保留每个单独答案的记录(并且永远不做任何合计或查找所有回答了问题x和答案y的用户),那么最简单的设计就是将答案反规范化到序列化字段中 如果您需要总计,如果您在汇总表中计算总计并在提交测验时更新值,那么您可能还可以在序列化表中获得非规范化答案
因此,对于您的具体问题,您需要决定,当您的意思是“以上所有”时,存储5对您的最终产品是否更有用,或者将四个选项中的每一个单独选择是否更有用。这些调查问题总是有一个,通用答案:这取决于你完成后想对答案做什么。 例如,如果您只想保留每个单独答案的记录(并且永远不做任何合计或查找所有回答了问题x和答案y的用户),那么最简单的设计就是将答案反规范化到序列化字段中 如果您需要总计,如果您在汇总表中计算总计并在提交测验时更新值,那么您可能还可以在序列化表中获得非规范化答案
因此,对于您的具体问题,您需要决定,当您指的是“以上所有”时,存储5对您的最终产品是否更有用,或者将四个选项中的每一个单独选择是否更有用。是的,这非常诱人,:D尽管Jimmy的看起来是正确的。这个想法也打动了我,但是,当我尝试运行聚合报告时,它似乎有问题——如果我想获得一组调查的唯一值及其各自的计数,这将涉及一些majro字符串解析。如果您确实想运行类似“所有适用问题的最常见错误答案”的报告,这可能是一个问题。是的,这非常诱人,当前位置虽然吉米的看起来像是对的