数据库中的动态调查和持久答案

时间:2016-11-15 11:25:02

标签: c# entity-framework database-design

我们目前正在建立一个动态调查系统。目前我们有以下布局;

Class Diagram of Db Structure

所以调查有一个数字部分有很多问题,等等。

我所追求的建议将归结为存储答案。目前,答案对问题有一个FK,但我担心的是,如果问题在任何一点发生变化都会影响答案。

例如,如果问题是红色的话?然后变成了它不是红色的?之前的任何答案都将失效。

我的第一直觉是在Answer Class中添加一个QuestionText(如图所示)。这将使问题的FK变得多余。我接下来会遇到的问题就是对结果的总结会有点痛苦。

另一个选项是从我的服务级别控制这个,所以例如如果编辑了一个问题,那么我会在这一点进行检查,并确保如果所述问题有任何答案,则禁止编辑并创建一个新的问题

人们会推荐什么(因为我认为这会在之前的其他地方出现过)。

提前致谢。

1 个答案:

答案 0 :(得分:2)

即使像Qualtrics这样的系统也不能很好地处理这个问题。如果您的调查已发布并且您更改了问题,他们会明确警告用户先前的答案可能无效,并可能使调查结果无效。

我建议在答案表datetimesubmitted中添加时间戳,并在问题表datetimelastedited中添加时间戳。如果datetimelastediteddatetimesubmitted更新,则警告用户,并可能将这些数据点保留在摘要统计信息之外。