将子问题存储在调查/问卷调查系统的数据库中

时间:2016-03-29 16:17:41

标签: mysql database

我目前正在为调查/问卷系统创建表格。当我开始创建问题表时,我想我遇到了一个小问题,如果我继续,可能会影响整个应用程序。在我的问题表中,我有一个名为“subBelongsToQuestion”的列,它是一个整数值,用于标识哪些子问题属于哪些父问题(如果有的话)。然后在我的答案表中,我有一个名为“responseRevealSubQuestion”的列,这是一个整数值,用于标识在“responseRevealSubQuestion”中触发器应答时要显示哪些子问题列值与“响应”列值匹配。

例如,如果用户对诸如“你喜欢奶酪吗?”之类的问题回答“是”,那么就会出现一个子问题:“你喜欢什么奶酪?”。

我想将此愿景转换为数据库格式,我不确定是否应该继续使用我正在使用的方法,还是要改变?如果说用户删除包含子问题的问题,则应用程序可以运行所需的代码以删除子问题并触发答案。

1 个答案:

答案 0 :(得分:1)

通常,对于您不使用SubQuestions的调查应用,您可以定义流条件

想象一下你在db上有这个问题

Q_ID   Question
 1     Do you like cheese?
 2     What do you like about cheese?
 3     Do you like meat?"
 4     What do you like about meat?
 5     ...

然后你有一个流程表在一个答案后验证。

Q_FROM   Q_VALUE Q_TO
  1        NO      3
  3        NO      5

在这种情况下,您只能绕过NO回答。否则你继续下一个问题。

在你结束每个问题后

SELECT Q_to 
FROM FlowTable 
WHERE Q_from = @CurrentQuestion 
  AND Q_value = @CurrentAnswer