database - 你能在关系数据库中使用决策表吗

标签 database

听说学术界对关系数据库中的决策表研究很多。我还知道业务规则引擎使用决策表,许多 BPMS 也使用它们。 我想知道今天人们是否在他们的关系数据库中使用决策表?

最佳答案

决策表是一组条件和操作。条件可以非常简单,您可以用简单的“将列与该值匹配”字符串来表示它。或者条件可能非常复杂。类似地,一个 Action 可以像“将这个值移动到一个列”一样简单。或者该操作可能涉及多个部分或步骤,或者 - 好吧 - 任何东西。

SELECT 或 WHERE 子句中的 CASE 函数决策表。这是关系数据库中决策表的第一个示例。

您可以有一个“转换”表,其中包含具有旧值和替换值的列。然后,您可以编写一小段代码,如下所示。

def decision_table( aRow ):
    result= connection.execute( "SELECT replacement_value FROM transformation WHERE old_value = ?", aRow['somecolumn'] )
    replacement= result.fetchone()
    aRow['anotherColumn']= result['replacement_value']

决策表的每一行都有一个“匹配这个旧值”和“移动这个替换值”的定义。

必须在某处评估决策表的“条件”部分。您的应用程序将发生这种情况。您将从数据库中获取条件值。您将在某些函数中使用这些值来查看规则是否为真。

决策表的“ Action ”部分必须在某处执行;同样,您的应用程序会做一些事情。您将从数据库中获取操作值。您将使用这些值来插入、更新或删除其他值。

一直在使用决策表;它们一直存在于关系数据库中。每个表都需要一个高度定制的数据模型。它还需要一个独特的条件函数和 Action 过程。

它不能很好地概括。如果需要,您可以将 XML 存储在数据库中并调用一些规则引擎来解释和执行 BPEL 规则。在这种情况下,规则引擎执行条件和操作处理。

如果需要,您可以将 Python(或 Tcl 或其他东西)存储在数据库中。严重地。您将用 Python 编写条件和操作。您将从数据库中获取它并运行 Python 代码片段。

很多选择。没有“学术”。事实上,基本条件 - 行动的东西一直在做。

关于database - 你能在关系数据库中使用决策表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/130789/

相关文章:

python - ZODB/ZEO 。从客户端连接到服务器

python - 编写通用脚本将数据从文件上传到数据库表

mysql - 记录大量印象数据(5000 万条记录/月)

mysql - 允许用户打开或关闭(基本上隐藏)任意数量的数据库字段?

mysql - SQL:检查现在时间戳是否大于过期时间戳

database - 使用.net sdk和sql查询universe数据库时如何获取页面

database - 如何从 oracle 中的 Base64 字符串中删除 '\r\n'?

mysql - 如何为开发环境转储 MySQL 数据库中所有表的最近 1000 行?

database - Doctrine2 Gedmo sluggable 行为,将分隔符更改为 "+"

javascript - Meteor MongoDB 按子字段过滤父记录