Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库中存储调查/问卷系统的子问题_Mysql_Database - Fatal编程技术网

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

Mysql 在数据库中存储调查/问卷系统的子问题,mysql,database,Mysql,Database,我目前正在为调查/问卷系统创建表格。在创建问题表时,我想我遇到了一个小问题,如果我继续,可能会影响整个应用程序。在我的问题表中,我有一个名为“subBelongsToQuestion”的列,它是一个整数值,用于标识哪些子问题属于哪些父问题(如果有)。然后在我的答案表中,我有一个名为“responseRevealSubQuestion”的列,它是一个整数值,用于确定“responseRevealSubQuestion”列值中的触发答案是否与“response”列值匹配,以显示哪些子问题 例如,如果

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

例如,如果用户对诸如“您喜欢奶酪吗?”之类的问题回答“是”,则会出现一个子问题,询问“您喜欢奶酪的哪些方面?”


我想把这个愿景转换成一种数据库格式,但我不确定我是应该继续使用我正在使用的方法,还是应该改变?如果用户删除了包含子问题的问题,那么应用程序可以运行所需的代码来删除子问题并触发答案。

通常对于不使用子问题的调查应用程序,您可以定义流程条件

想象一下你的数据库里有这些问题

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
answer。否则,请继续下一个问题

结束后,你要做的每一个问题

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

使用您的desigen,可以通过FK的构造自动处理删除,您不必提及您的数据库解决方案,许多数据库解决方案提供了在删除时级联的功能,在这种情况下,当您删除问题时,所有相关的childs数据都将自动删除Yelirevach-您的意思是我应该将提到的列转换为FKs?因此您建议我应该向我的系统中添加另一个数据库表?但我如何将这两张表联系在一起呢。我会通过使用FKs来实现吗?是的,在您结束每个问题后,您可以
从流程表中选择Q_to,其中Q_FROM=@CurrentQuestion和Q_value=@CurrentAnswer
好的,我稍后会尝试将该逻辑应用到我的ERD图中,并会就此与您联系,看看它是否达到了我的预期效果。因此,如果用户说不,查询将查看该答案是否包含任何子问题。如果用户回答是,查询是否仍会查看该答案是否包含任何子问题?我想会的,但我需要第二个意见。我已经做了几个这样的应用程序。但这是基本情况。你也可以考虑有多种选择的情况,然后你需要一个更复杂的流程表来查看这个问题,我想对于我想尝试和实现的问题,我可以通过在问题表中陈述问题的数字位置来获得相同的结果,子问题出现在答案表中需要什么答案?我已经有了这两个表的透视表,它将是查询哪个子问题属于哪个问题的情况。如果我在位置3.1中有一个子问题,系统会知道它属于位置3中的问题。对不起,我好像在转移注意力。我只是想找到一个简单但有效的解决办法。