我现在正在开发一个相当简单的调查系统。数据库模式将很简单:一个Survey表,与Question表成一对多关系,与Answer表和表成一对多关系PossibleAnswers。最近,该客户意识到她希望只向那些对某个先前问题做出特定回答的人显示某些问题(例如,您是否购买香烟?接着是您最喜欢的香烟品牌是什么?),没有必要再问第二个问题了。向不吸烟者提问)。现在,我开始怀疑,根据我的数据库模式,实现此条件问题的最佳方法是什么?如果question A有2个可能的答案:A和B,以及question B应该只出现一个用户,如果答案是A?编辑:我正在寻找的是一种将有关需求的信息存储在数据库中的方法。数据的处理可能会在应用程序端完成,因为我的SQL技能很糟糕;)
3 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
您还可以考虑复杂的规则,并在Questions表中具有一个基于字符串的条件字段,以接受/解析以下任何条件:
A(1)= 3
((A(1)= 3)和(A(2)= 4))
A(3)> 2
(A(3)= 1)和(A(17)!= 2)和C(1)
其中A(x)= y表示“问题x的答案为y”,而C(x)表示问题x的条件(默认为true)...
这些问题有一个顺序字段,您将一个接一个地进行研究,跳过条件为FALSE的问题。
这应该允许您调查所需的任何复杂性,您的GUI可以在“简单模式”下自动创建这些模型,并允许“高级模式”,用户可以在其中直接输入方程式。
扬帆大鱼
TA贡献1799条经验 获得超9个赞
一种方法是添加带有字段的表“问题要求”:
question_id(链接到“哪个品牌?”问题)
required_question_id(链接到“你抽烟吗?”问题)
required_answer_id(链接到“是”的答案)
在应用程序中,在提出特定问题之前,请检查此表。使用单独的表格,可以轻松添加所需的答案(为“有时”的答案添加另一行等)
- 3 回答
- 0 关注
- 386 浏览
添加回答
举报
0/150
提交
取消