Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 存储和评估规则表达式的数据库设计_.net_Sql Server_Design Patterns_Database Design_Data Modeling - Fatal编程技术网

.net 存储和评估规则表达式的数据库设计

.net 存储和评估规则表达式的数据库设计,.net,sql-server,design-patterns,database-design,data-modeling,.net,Sql Server,Design Patterns,Database Design,Data Modeling,我有一个场景,我需要为客人分配一些物品 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英寸的酒店客人提供一件物品 因为过

我有一个场景,我需要为客人分配一些物品

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英寸的酒店客人提供一件物品

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


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

你应该考虑使用类似的东西,避免使用数据库作为规则引擎。客户端解析速度更快,不会给数据库服务器带来太多负载。只需读入值,然后使用

flue
解析表达式即可。它是一个伟大的评估引擎。试着让我们知道你的想法。

正如APC在评论中所写的那样,决定是否使用业务规则引擎对于互联网上的一群陌生人来说并不值得信任

但是……您的场景相对简单且受限。这似乎是一个单一的步骤,而不是一个工作流程——“如果客户符合标准x,则提供产品y”,而不是“所有符合标准x的客户必须得到经理的批准”。它似乎只局限于数据库,没有调用web服务来决定产品是否合适

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


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

听起来您正在创建自己的表达式生成器,因此您需要向用户提供所有可能的列和运算符列表(+,-,如果没有关于如何应用规则的设计,那么您希望如何获得关于如何存储规则的答案。规则是否特定于某项物品?您确实有一项物品不会出售给5英尺5英寸以上的客人?库存如何?无法出售您没有库存的物品。缺少的东西太多了。@Blam-堆叠h的鞋子eels?使用规则引擎是一项体系结构决策。你不能指望我们告诉你正确的答案。我们只是对你的情况了解不够。引擎可能是合适的,你肯定会提出一些合理的建议。但是,与RE相关的一系列费用——许可、学习曲线等我们无法为您评估的方法。您有一个数据库吗?或者每个客户都有自己的数据库吗?如果后者为真,将它们存储在数据库中将创建许多不同的规则排列以支持。谢谢,“示例查询”你能说出几个吗?我只找到一个-以前有一个来自Telerik,Crystal也有一些,但找不到链接。。。