基于T-SQL的规则引擎(一) 背景

从明天起终于可以休息了.停下来休养身体,扎实学习一下技术,顺便写写这几年做过的东西.

第一个,是一个基于SQL SERVER的规则引擎,写于2011,

当时不知道有规则引擎这东西,为了实现这样一个功能,自己写了一个,当时起的名字是"策略引擎",这个名字相当可是想了好久(给自己开发的东西命名是很爽的事)。

背景

我就职于一家联通代理商,是最早的一批联通3G代理商,主营3G业务,并且将公司自有的业务与联通业务进行包装发布市场。

2011年初,IT部门只有我一名开发,以及一名系统维护人员。

我的工作是基于一套从上个东家带过来的业务系统,支撑公司所有的业务。系统有DelphiC#.NET两个界面版本。一个供管理用,功能齐全;一套供营业厅使用,只有部分功能。

从2011年起,公司飞速扩张,快速在广东省几个地市建立子公司,业务迅速扩展,在IT层面的体现就是业务规则越来越复杂,业务变化越来越快,而很多业务的控制和计算都由IT实现,例如员工绩效计算,不同岗位,不同区域,不同营业厅类型,不同政策类型,不同3G套餐,不同机型,不同价位段……各种复杂的条件组合下有不同的值,而且这些条件随时会增加和修改。一开始是将这些规则记录在规则表中,发生业务时与业务数据匹配后进行计算,但随着规则越来越复杂,以及有类似复杂规则的项目越来越多,明显已经不是简单的规则表能解决问题的了,很快IT不堪负重,并且系统越来越丑陋,实在难以维护。于是启动懒人模式,开始着手设计一个以不变应万变的模块,并且交给业务部门自己维护,但愿这些业务上的事别再找IT

基于以上背景,我的设计目标如下:

1、足够灵活,能应对各种复杂的业务规则。可以对各种业务状态进行复杂的组合判断,以设置复杂的规则。

2、足够简单,能交给业务部门直接维护,业务规则改变不再需要IT

3、足够好的扩展性,可以快速应用到系统各个业务模块,并且最少改动现有代码。

在现有的开发模式下,只能使用T-SQL,不过幸好SQL SERVER支持CLR扩展,一些功能会使用到它。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值