在MySQL中存储调查响应的最佳方式是什么?
我正在设计一个数据库来存储通过API从我们的调查平台Wufoo收集的调查响应。每个调查都有不同数量的问题。每个调查都有一个Id,每个回复也有一个Id。我希望将数据存储为高效、灵活的数据,以便通过查询同时检索多个问题 一种选择是将其存储为一个包含列的表—Survey\u Id、Response\u Id、Question和Response。i、 e.来自API的每一行响应将是单个表中的多行 另一种选择是有两个表,称为问题和回答。每个表可以有大约50个名为-Q1、Q2、Q3、Q4等的列。然后,我可以在问题表中存储所有问题一次,对于每个回答,将值按Q1、Q2、Q3等相同顺序存储在响应表中。要检索,我可以在读取响应表时将问题表中的值用作列名的别名,很可能是使用存储过程在MySQL中存储调查响应的最佳方式是什么?,mysql,database-design,survey,wufoo,Mysql,Database Design,Survey,Wufoo,我正在设计一个数据库来存储通过API从我们的调查平台Wufoo收集的调查响应。每个调查都有不同数量的问题。每个调查都有一个Id,每个回复也有一个Id。我希望将数据存储为高效、灵活的数据,以便通过查询同时检索多个问题 一种选择是将其存储为一个包含列的表—Survey\u Id、Response\u Id、Question和Response。i、 e.来自API的每一行响应将是单个表中的多行 另一种选择是有两个表,称为问题和回答。每个表可以有大约50个名为-Q1、Q2、Q3、Q4等的列。然后,我可以
如果您打算使用数据进行报告,您会选择上述哪一个选项,可能还会选择查看和潜在问题?或者有其他方法来存储调查响应吗?规范化是数据库设计的最佳方法 你的第二个选择很好,但会进一步改进。维护两张表格,包括问题和回答 问题表模式 调查编号 问题编号 问题: 响应表模式 回应 调查id对问题表中调查id的引用 问题id对问题表中问题id的引用 回应 假设调查1有20个问题。所以,问题表将有20个条目。每个问题都会在回答表中给出答案 还有一个提示,如果您希望得到大量回复或大量数据集,请避免自动递增主键,因为这将耗尽资源。因此,我在回答表中保留了两个参考调查id和问题id
希望这有帮助 类似于:您的解决方案更接近我的选项1。实际上,条目Id由API返回,实际上是调查中的一系列响应。无论如何,您将如何查询表格,以便在调查中,您可以返回任意两个或三个问题的所有回答,每列一个问题。您可以使用GROUP_by survey_id QUALISE_id,然后在SELECT语句中使用GROUP_CONCAT responses,获得一个问题的所有回答。