由于问卷总是可以改变,问题本身可能很长,因此将问题用作列名似乎很愚蠢。 在数据库中存储调查问卷是否有任何惯例或经过验证的方法?
我正在考虑有一个表(问题ID,问题),然后是第二个问题ID和答案表。但是这个解决方案可能太慢,因为需要第三次加入才能与特定用户一起加入问题。
答案 0 :(得分:2)
加入有什么问题?这就是关系数据库的一个重点,即连接。
将问题存储在一个表格中。
将问题答案存储在另一个表格中。
如果答案是预定义的,并且在多个问题中是常见的,那么将常见答案存储在他们自己的表中,并创建另一个具有AnswerID的QuestionID的表。
不要害怕加入,它们是关系数据库的一部分。没有连接,你只是处理平面文件。
答案 1 :(得分:0)
我认为最好的答案是对调查问卷的信息进行建模。不要试图对问卷本身进行建模 - 问卷只是用于收集数据库内容的手段。
答案 2 :(得分:0)
我认为最好有一个单独的类/文件来代表使用hashmap的问卷。然后其他类可以使用它。我真的没有看到在db中存储问题的必要性,因为它们仍然会被加载到一个hashmap中。
答案 3 :(得分:0)
我的回答有点迟了,但也许有人会发现这些信息很有用。
我完全赞同JonH。我将举例说明我是如何实现它以更清楚地制定通用解决方案的。
最常见的表格是:
此外,根据您的应用需求,您可以选择为选项答案(例如收音机,复选框等)或活动跟踪表创建特殊表格。
以下是可能有用的链接(从上到下阅读的建议顺序):