【发布时间】:2011-09-19 09:10:01
【问题描述】:
我正在寻找有关应用程序设计的一些建议。由于我签署了 NDA,因此我无法透露太多有关实际业务的信息,但会尝试解释该要求。
本质上,我们希望开发一个应用程序,该应用程序将根据客户的信用状况做出决定。我们将从合适的提供商(例如 Experian)获取数据,并将其与业务规则相匹配。如果客户符合这些规则,他们将获得一个绿旗,以传递给下一个流程(可能还有另一个系统,但目前并不担心);如果没有,他们将获得红旗并且不会被传递。
客户表示他们希望业务规则是可修改的,即他们可以修改的东西,而不是硬编码或卡在某处的代码中。他们将一组规则定义为“模板”。系统一次只能有一个活动模板,但在其生命周期内可能有许多模板。
这些规则将由检查不同数据类型的多个运算符组成。规则的每个阶段/步骤将被分配一定的权重。 “模板”的一个例子是
- 客户是男的吗=10分
客户是女性=20分
客户年龄在 25 到 35 岁之间吗? = 20 分
客户是否小于 25 岁? = 10 分
客户的年收入是否在 30000 美元到 50000 美元之间 = 20 分
如您所见,有各种类型的比较/运算符(布尔值、整数等)。
我正在寻找可以构建这些“模板”的框架/建议。这是一个网络作业,所以我们知道我们肯定会使用某种数据库。该技术尚未确定,但可能介于 PHP 和 .NET 之间。我们认为现阶段大部分工作将在 SQL 中完成(并想看看这是否是一个好主意)
有没有我可以通过的示例应用程序?以前有人做过这种性质的工作吗?
谢谢!
【问题讨论】:
-
谨防尝试使用 SQL 对复杂的业务规则进行建模。边缘案例可以迅速将事情变成数以万计的表格和行。请参阅此(有些争议)video on ACL 示例。
标签: design-patterns business-logic business-rules