0

我正在尝试做一个网络应用程序,它会向最终用户提出一系列问题。基于此,他们将获得另一个系列/一组问题,这些问题会分支成一棵树。

举个例子。用户被问到 2 个问题:

Q1:你几岁?a)0 - 18 b)18-35 c)35-55 d) 55+ Q2:你吸烟吗?a) 是 b) 否

如果用户选择 a|a,他们会被问到一组新的问题,如果他们被问到 a|b,他们会被问到另一个问题,依此类推。

我很难想出一种在 MySQL 中表示这一点的方法。困难主要是巩固对Q1的回答“a”+对Q2的回答“b”进入下一组问题的事实。

我在这里问了一个类似的问题: stackOverFlow

但我对结果不满意,这可能是我的例子,所以我在这里详细说明。

4

1 回答 1

0

这在调查社区中称为“路由”。

我之前在调查引擎中实现这一点的方式是在调查中包含完整的问题列表,没有任何规则就可以让用户回答所有问题。

然后,您将属性附加到问题中的每个答案,然后在提交每个问题时,检查所选答案的属性,并查看它是否说明是否禁用调查中的任何未来问题。

完成此操作后,您可以使用一些类似于“GetNextQuestion()”的逻辑来检查受访者已经提出的所有规则(即哪些问题被禁用),然后为他们显示下一个可用问题回答。

从技术和管理的角度来看,这是一个复杂的过程。

数据库结构将涉及一个 Questions 表、一个 Answers 表,然后是一个 AnswerDisablesQuestion 表,该表将保存 AnswerID,并且 questionID 的答案禁用。

于 2013-09-27T22:16:44.887 回答