首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将drools expert与动态决策表一起使用

将drools expert与动态决策表一起使用
EN

Stack Overflow用户
提问于 2010-06-15 04:13:25
回答 1查看 3.9K关注 0票数 7

这是我想要做的。

我想把“规则”放在一个数据库表中。这有点像drools xls决策表格式,只是所有规则都是表中的行。这样我就可以很容易地修改规则了。我需要将它放在表中,而不是xls中,因为我的规则可能经常更改。drools可以做到这一点吗?我是否可以使用从数据库(而不是DRL或xls文件)中检索到的规则构建知识库,并且每次规则更改时,我是否可以从头开始重建知识库(或者可能只是知识库的一部分,本质上只更新那些更改过的规则。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-09 18:46:00

这取决于你脑海中的规则是什么。如果你有许多具有相同结构的规则,并且这些规则只根据特定的“参数”而变化,那么数据库支持的方法是有意义的。在这种情况下,您可以编写单个通用规则,并使用数据库存储所有适用的组合。例如,假设您有一个计算每个国家/地区的运费的规则,例如

代码语言:javascript
复制
rule "Shipping rates to France"
when
    $order : Order(country == 'fr')
then
    $order.setShippingRate(10.0);
    update(order);
end

// Similar rules for other countries…

您可以替换数据库中的这些规则数据,其中每个CountryShippingRate指定一个国家/地区的汇率。然后,将所有CountryShippingRate行作为事实对象插入到规则会话中,并插入单个规则,如:

代码语言:javascript
复制
rule "Shipping rates"
when
    $order : Order($country : country)
    CountryShippingRate($rate : rate, country == $country)
then
    $order.setShippingRate($rate);
    update(order);
end

在实践中,事实证明,许多决策表类型的规则都可以用这种方式重写。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3040546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档