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

Posted

技术标签:

【中文标题】如何将分支逻辑持久化到数据库中?【英文标题】:How to persist branching logic into database? 【发布时间】:2011-07-13 18:52:42 【问题描述】:

我们正在构建一个供内部使用的调查引擎。我想知道如何将问题分支逻辑持久化到数据库中?有没有人做过这件事,或者对数据库的架构有什么想法?

如果用户回答了答案,我们需要根据添加到问题中的逻辑跳到下一个问题。每个问题可以添加多个逻辑。

例如:

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)


我如何将上述内容持久化到数据库并从那里开始?

有什么好主意吗?

【问题讨论】:

逻辑是否应该存储在数据库中?也许只是存储问题和答案的数据,然后在应用程序中有说明数据库应该有什么的逻辑。 是的,我们需要将逻辑存储在数据库中。 【参考方案1】:

您实际上是希望将decision tree 持久化到数据库中。您希望将每个问题存储为一个节点,并且为了规范化数据库的利益,将边存储在一个单独的表中,该表与依赖于其他问题(有向边)的问题相关,并酌情行走。

编辑:一个简单的设计可以是两个表格:问题和边缘。问题只有idquestion text。边可以是answered_question_idnext_question_idanswer。第一个表是不言自明的。第二个表格列出了如果提出问题 answered_question_id 并以等于或匹配 answer 的内容回答,则转发到问题 next_question_id 下一个。

【讨论】:

您好严,感谢您的意见。您能否提供一个示例架构。 您好严,再次感谢您的意见。我会试试看。

以上是关于如何将分支逻辑持久化到数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用分支逻辑构造不可变数据类型的实例?

银行业务-Excel文件的拆分逻辑

JPA:如何将字符串持久化到数据库字段中,键入 MYSQL 文本

数据持久化

实验四——多分支结构及本章总结

实验四—多分支结构及本章总结