Database design 为长问卷设计数据库
嘿,我为一个困扰我很长一段时间的问题挠头了 基本上,我有一个很长的在线问卷,我不太确定我应该如何设计mySQL数据库来存储答案 下面是我的问题:Database design 为长问卷设计数据库,database-design,Database Design,嘿,我为一个困扰我很长一段时间的问题挠头了 基本上,我有一个很长的在线问卷,我不太确定我应该如何设计mySQL数据库来存储答案 下面是我的问题: 我应该为每个人(参加调查的人)创建一行吗 有许多家长/孩子的问题(例如,如果回答是,则 回答以下问题,否则忽略)。他们怎么办 对于一个问题,此人可以回答多个答案。如何 处理他们 我的想法是创建一个表,每列都是问题。如果有家长/孩子的问题与调查对象无关,则只会将其保留为空白。对于可以有多个答案的问题,我将创建n列(其中n表示可能的答案数量) 你觉得怎么样
n
列(其中n
表示可能的答案数量)
你觉得怎么样?这是否合适,或者是否有更好的方法来设计数据库
谢谢对于我来说,每一列都是问题听起来是个坏主意,因为很难更改/添加问题。更改数据库结构应该很少进行 表格:答案 对于答案,我想说的是一个包含所有答案的表,其中包含以下列:
- 人员id(回答此特定问题的人员)
- 问题id(这一行回答了哪个问题)
- 答案(答案本身,可以是字符串/数字)
- 问题id(当前问题)
- 回答条件(字符串\数字,取决于您的问题)
- 下一个问题id
[1,NULL,2]
-在这种情况下,NULL表示所有可能的答案。如果问题2仅在回答“是”时才引出问题3,则将[2,“是”,3]
。如果问题2仅在回答“否”时才引出问题4,则将[2,“否”,4]
以此类推
表格:问题
另一个可能有用的表格是问题表格,它提供了有关问题可以接受的内容的更多信息。例如,如果您想知道哪些问题支持多个答案,请使用以下列:
- 问题id(我们正在讨论的问题)
- 支持多个答案(bool)
在这个表中,每个问题通常有一行。您需要研究关系数据库设计和数据库规范化。不要把所有的东西都放在一张表中,否则你会有一场噩梦。这是nosql dbs、mapreduce和函数式编程的一个很好的候选者;)对于RDBMS,您所做的被称为“一个大的电子表格”,被认为是一种糟糕的方法。