意图:
我正在设计一个网络应用程序,旨在通过一组预定义的问题帮助用户解决工作场所问题,这些问题分布在3-4个阶段,有助于缩小问题范围。
在调查问卷的每个阶段,用户将能够在众多解决方案中进行选择,下一阶段的解决方案将基于之前的选择。
选择的每个答案都会触发相关的动画。
用户的场景
典型的用户场景可能如下所示:
Q1 - 出了什么问题?
然后,用户选择 A2 选项。基于该选择,问题及其答案将呈现给用户,如下:
Q2 - 谁在忽视你的意见?
..等等。
规格:
问题,答案,组合(以及可能的动画)需要存储在数据库中。
每个问题和答案都需要能够以多种组合使用。
每个动画都需要能够用于多个问题。
我的问题:
答案 0 :(得分:0)
您可以使用图表来表示问题。
Q1 -a1-> Q3
Q1 -a2-> Q2 -*-> Q3
Q1 -a3-> Q3
表:
Questionnaire
- Id
- Name
Question
- Id
- Title
Response
- Id
- Title
QuestionnaireQuestions
- QuestionnaireId
- QuestionId
QuestionResponse
- QuestionnaireId
- QuestionId
- ResponseId
- NextQuestionId
- Animation
来自QuestionResponse(QuestionnaireId,QuestionId)的FK到问卷调查问卷(QuestionnaireId,QuestionId)
答案 1 :(得分:0)
您有一个谓词,用于标识存在哪些问题。 您有一个谓词,用于标识哪些答案存在[针对哪些问题]。 你有一个谓词,用于确定哪些答案[针对哪些问题],一旦给出,就会产生后续问题。
特别关于"下一阶段的解决方案将基于之前做出的选择。"
由于没有办法预测有多少先前选择在确定任何后续问题的可能答案的子集中发挥作用,因此这个问题的方面是不可能的,或者尽可能不可能模拟为多个列在某些表格中。
这迫使你消除每个可能的人的歧义#34;谁在忽视你"它有一组独特的可能答案,作为一个单独的问题。