gpt4 book ai didi

mysql - 在 MySQL 中存储调查回复的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-29 19:12:26 25 4
gpt4 key购买 nike

我正在设计一个数据库来存储通过 API 从我们的调查平台 Wufoo 收集的调查回复。每项调查都有不同数量的问题。每个调查都有一个 Id,每个回复也都有一个 Id。我希望高效存储数据,但又足够灵活,可以通过查询同时检索多个问题。

一种选择是将其存储为包含列的表 - Survey_Id、Response_Id、Question 和 Response。即来自 API 的每一行响应将在单个表中包含多行。

另一种选择是有两个表,分别称为问题和响应。每个表可以有大约 50 个名为 - Q1、Q2、Q3、Q4 等的列。然后,我可以将所有问题(一次)存储在问题表中,并且对于每个响应,以相同的顺序将值存储在响应表中Q1、Q2、Q3 等。要检索,我可以在读取响应表时使用问题表中的值作为列名的别名,很可能使用存储过程。

如果您打算使用数据进行报告,您会选择上述哪个选项,并且可能会预见到潜在的问题?或者还有其他方法来存储调查回复吗?

最佳答案

规范化是数据库设计的最佳方法。

你的第二个选择很好,但会进一步改进。维护 2 个表问题响应

问题表架构

survey_id

question_id

question

响应表架构

response_id

survey_id (references to survey_id in questions table)

question_id (references to question_id in questions table)

response

假设调查 1 有 20 个问题。因此,questions 表将有 20 个条目。对于每个问题,response 表中都会有答案。

还有一个提示,如果您期望大量回复或大型数据集,请避免自动递增主键,因为这会耗尽。因此,我在 responses 表中维护了 2 个引用 survey_idquestion_id

希望这有帮助!

关于mysql - 在 MySQL 中存储调查回复的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42975975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com