如何将分支逻辑持久化到数据库中?

9
我们正在为内部使用构建一款调查引擎。我想知道如何将问题分支逻辑存储到数据库中?有没有人做过这个,或者对数据库模式有什么想法?
如果用户回答了一个问题,我们需要根据添加到问题中的逻辑跳转到下一个问题。每个问题可以添加多个逻辑。
例如:
Question: Is it Sunny, Raining or Cloudy?
Answer: Raining.
The next question should be based on the previous answer.
if(Raining)
{
}

if(Sunny)
{
}

if(Cloudy)
{
}

如何将上述内容存储到数据库并继续操作?
有什么好的想法吗?

逻辑应该存储在数据库中吗?也许只需存储问题和答案的数据,然后在应用程序中具有指定数据库应该具有什么的逻辑。 - John Boker
是的,我们需要将逻辑存储在数据库中。 - Sean
1个回答

7
您需要将 决策树 持久化到数据库中。您需要将每个问题存储为一个节点,并且为了使数据库规范化,将边缘存储在一个单独的表中,涉及依赖其他问题的问题(有向边缘),并在适当时遍历。
编辑:一个简单的设计可以是两个表:Questions 和 Edges。Questions 只有 idquestion text。Edges 可以是 answered_question_idnext_question_idanswer。第一个表是不言自明的。第二个表列出如果问问题 answered_question_id 并回答与 answer 相等或匹配的内容,则转到下一个问题 next_question_id

你好 Yan,感谢你的输入。请问你能提供一个样本模式吗? - Sean
你好 Yan,再次感谢你的建议。我会尝试一下。 - Sean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接