日期:2014-05-18  浏览次数:20486 次

求业务规则设计示例
业务规则设计呢,想将业务规则执行代码与业务流程管理系统的其他代码分开。这样最终用户无需请求程序员的帮助就可以更改业务规则,程序将按照新的规则来运行。

也有叫业务规则引擎的吧, 我们这里有人做过类似的设计没,能不能给两个简单示例.

例如:我目前遇到问题就是-----业务系统需要制定一个贸易定单购买的规则,如果购买商品是 地区a 地区b 地区c呢,就执行特定业务规则term, 另外的地方呢,根据合作公司的他们制定的规则逻辑来区别业务系统要执行哪个特定的业务规则term。
最初的想法,这个规则的逻辑主要依据就是地区了,先划分地区,然后在看公司了。 但是这个规则的逻辑不是一成不变的,以后万一业务系统规则逻辑发生改变呢,我不想在修改程序了,直接修改数据库中的业务规则逻辑,就可以了。

目前我这么设计的大家看看行不行,合理不合理,规则之间是不是需要排它性的。
ruleId 自增列 主键
公司
公司规则序号 //由公司和公司规则序号作成unique的索引
商品
运输方式
执行条款 //商品 运输方式 执行条款 是次要依赖项,可为空.
结果规则term //规则term1
判定逻辑 //针对目前要求 location = 地区a or location = 地区b or location = 地区c
规则是否激活 //
规则开始执行时间//  
规则结束执行时间// 比如说我从80-90年执行的是 一个业务规则,到90年以后业务规则变了,我重新生成了业务规则 就有了这三项,但是规则依赖没有,判断标准和结果可能变了。


记录示例
1, company_a, 1, 大蒜, 火车,消费者法 合同法,term1, where location = 地区a or location = 地区b or location = 地区c
2 company_a, 2, 生姜,火车,消费者法 合同法,term2, where location not in[ 地区a , 地区b ,地区c] and 商品是生姜  

2 company_b, 2, 鸡毛菜,汽车,消费者法 合同法,term——99, where location not in[ 地区a , 地区b ,地区c] and 商品是鸡毛菜 and 运输方式是汽车。

-------------------------------
我数据库设计不是很熟悉,上面写的就是一个草案, 大家有没有自己用示例,或者好的建议
 


------解决方案--------------------
纯帮顶~
------解决方案--------------------
这头像好面熟
------解决方案--------------------
可以把表拆成2个。
其中一个存放的主要信息为地区,
另一个存放的主要信息为规则。
然后用外键做约束

另外,你的业务逻辑改变的话,一般会改变成什么样子的呢。至少也稍微估计下吧,不然觉得你的设计也是可以的,需要注意的是,得有约束,不然其他规则也不小心也会对应到规则A,B,C的。

对设计不是很熟,楼主可以参考下。
------解决方案--------------------
探讨
跟 bancxc (本大王一定会回来的) 像吧.
不过他的是喜庆的,我这个是失望的.

------解决方案--------------------
。。。。。
------解决方案--------------------
登一登赚点分
------解决方案--------------------
帮顶,这样没有实际模型,想讨论出结果比较难