流口水数据库
Drools Database
我正在开发一个基于 Drool 规则的评级系统,以取代用 ASP 和关系数据库制作的旧评级系统。
一切都运行如预期的那样非常好,但是一些规则变得非常广泛,因为评级系统需要将很多常量值与输入进行比较——我不想回到使用外部数据库的解决方案。
这一刻,是否应该使用一些标准数据结构来保存大量常量值?我知道可以为此构建一个 Java 结构......但我的 objective 是将规则文件提供给销售团队,他们几乎不了解 Java 但他们非常好有比率。
例如,我想用更干净的东西替换它:
if("A".equals($inpt)) { $outpt = 0.1; }
else if("B".equals($inpt)) { $outpt = 0.2; }
else if("C".equals($inpt)) { $outpt = 0.3; }
我得猜猜看。假设你有
rule "set output"
when
$s: Something( $input: input )
InToOut( input == $input, $output: output )
then
modify( $s ){ setOutput( $output ) }
end
如果你给他们骨架,你的销售团队成员一定会理解
rule "setInToOut"
salience 999999999
when
then
insert( new InToOut( "A", 0.1 ) );
insert( new InToOut( "B", 0.2 ) );
...
end
你可以用一个函数来简化它。
我正在开发一个基于 Drool 规则的评级系统,以取代用 ASP 和关系数据库制作的旧评级系统。
一切都运行如预期的那样非常好,但是一些规则变得非常广泛,因为评级系统需要将很多常量值与输入进行比较——我不想回到使用外部数据库的解决方案。
这一刻,是否应该使用一些标准数据结构来保存大量常量值?我知道可以为此构建一个 Java 结构......但我的 objective 是将规则文件提供给销售团队,他们几乎不了解 Java 但他们非常好有比率。
例如,我想用更干净的东西替换它:
if("A".equals($inpt)) { $outpt = 0.1; }
else if("B".equals($inpt)) { $outpt = 0.2; }
else if("C".equals($inpt)) { $outpt = 0.3; }
我得猜猜看。假设你有
rule "set output"
when
$s: Something( $input: input )
InToOut( input == $input, $output: output )
then
modify( $s ){ setOutput( $output ) }
end
如果你给他们骨架,你的销售团队成员一定会理解
rule "setInToOut"
salience 999999999
when
then
insert( new InToOut( "A", 0.1 ) );
insert( new InToOut( "B", 0.2 ) );
...
end
你可以用一个函数来简化它。