Database 数据库驱动业务规则引擎

Database 数据库驱动业务规则引擎,database,Database,技术堆栈:.NET 问题陈述:应用程序有很多业务规则,现有规则的任何更改或新规则的添加都需要整个发布周期(修改代码,然后进行测试和部署) 需求[硬按]:业务用户应该能够使用GUI动态指定业务规则 探讨的备选方案: 然而,MS BRE与Biztalk捆绑在一起 .Net堆栈开放源代码业务规则引擎(如SRE、Drools.Net、NxBRE)——大多数都不处于活动状态 在数据库中添加规则,并为用户提供一个GUI来添加/编辑规则,尽管这似乎是最有希望的,但出于sql注入和可能的性能影响的原因,我并不喜

技术堆栈:.NET

问题陈述:应用程序有很多业务规则,现有规则的任何更改或新规则的添加都需要整个发布周期(修改代码,然后进行测试和部署)

需求[硬按]:业务用户应该能够使用GUI动态指定业务规则

探讨的备选方案:

  • 然而,MS BRE与Biztalk捆绑在一起
  • .Net堆栈开放源代码业务规则引擎(如SRE、Drools.Net、NxBRE)——大多数都不处于活动状态

  • 在数据库中添加规则,并为用户提供一个GUI来添加/编辑规则,尽管这似乎是最有希望的,但出于sql注入和可能的性能影响的原因,我并不喜欢动态sql,更不用说缺乏单元测试覆盖率和可预见的维护问题了

  • WF–未探索,但AFAIK没有运行时生成器

  • 购买商业规则引擎不是一种选择


  • 这是对在线系统的要求,任何建议都欢迎。

    我已经用特殊表格(在Postgres中)试验了业务规则

    和通用功能:

     create_access_temp_view(table_name name, in_write_access boolean)
    
    对于在调用前为当前用户生成带有限制条件的数据库表临时视图,请选择、插入、更新或删除


    临时视图不是一个常见的解决方案,但工作速度非常快。

    我已经用特殊表(在Postgres中)试验了业务规则

    和通用功能:

     create_access_temp_view(table_name name, in_write_access boolean)
    
    对于在调用前为当前用户生成带有限制条件的数据库表临时视图,请选择、插入、更新或删除

    临时视图不是一个常见的解决方案,但工作速度非常快