6

我有一个场景,我需要将一些项目分配给客人。

GuestTable has columns like
1. Guest ID
2. GuestType
3. Age
4. Height
5. Gender

ItemTable has columns like
1. ItemID
2. Item Name

每件商品都根据商品的可用性以及客人的属性(即年龄组或身高范围等)出售给客人。

例如。每周一和周二下午 2 点到 4 点和下午 6 点到 8 点,男性水疗中心客人以及身高大于 5 英寸且小于 5 英尺 5 英寸的酒店客人可以购买一件物品。

由于过滤条件的数量很大并且可由最终用户配置。除了系统应该具有足够的可扩展性以适应新的过滤条件外,我应该如何管理这些规则。可以将这些规则作为表达式存储在数据库表中吗?如何为这种场景建模数据库表?

或者

我应该考虑使用一些规则引擎吗?

4

2 回答 2

1

您应该考虑使用Flee之类的东西,并避免将数据库用作规则引擎。客户端解析将更快,并且不会对您的数据库服务器施加太多负载。只需读入值,然后使用解析表达式Flee。它是一个很棒的评估引擎。尝试让我们知道您的想法。

于 2013-07-09T11:54:25.963 回答
1

正如 APC 在评论中所写,决定是否使用业务规则引擎并不是您应该信任互联网上的一群陌生人的事情。

但是...您的方案相对简单且受限制。它似乎是一个步骤,而不是一个工作流程——“如果客户满足标准 x,则提供产品 y”,而不是“所有符合标准 x 的客户都必须得到经理的批准”。它似乎仅限于数据库 - 没有调用 Web 服务来决定产品是否合适。

在此基础上 - 不,不要使用规则引擎。它们是大型而复杂的机器,只能在比您描述的更大的问题中为自己买单。

我建议使用 .Net “示例查询”库来允许您的用户创建过滤条件;有几个商业选项,例如EasyQuery

于 2013-07-09T12:14:53.310 回答