问题标签 [business-rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
894 浏览

csla - 为什么业务规则是用 C#(代码)编写的?

我正在查看 Lhotka CSLA.NET 对象库 (Lhotka.NET)。这似乎很有趣,但没有意义的一件事是业务规则是用 C# 编写的。如果这些不在代码之外进行编码(即使它是一个与应用程序的主要逻辑不耦合的库,规则仍然可以更改并需要重新编译)。

谢谢

0 投票
1 回答
1232 浏览

sql-server - 什么是数据库中的键查找,与业务规则有什么区别?

我想知道数据库中的键查找到底是什么?

密钥查找和业务规则有什么区别?

谢谢你们 !

0 投票
3 回答
2941 浏览

sql - 在数据库级别应用业务规则

我正在做一个项目,我们需要确定大量人员的某些类型的状态,存储在数据库中。确定这些状态的业务规则相当复杂,并且可能会发生变化。

例如,

乘以几十个状态,可能还有数百个组和属性。人员、组和属性都在数据库中。

虽然这将由 Java 应用程序使用,但我们还希望能够直接针对数据库运行报告,因此最好在数据级别提供一组计算状态。

因此,我们当前的设计计划是为每个人创建一个包含一组布尔标志(hasStatusA?hasStatusB?hasStatusC?)的表或视图。这样,如果我想查询每个状态为 C 的人,我不必知道计算状态 C 的所有规则;我只是检查国旗。

(请注意,在现实生活中,标志将具有更有意义的名称:isEligibleForReview?、isPastDueForReview? 等)。

所以a)这是一种合理的方法,b)如果是这样,计算这些标志的最佳方法是什么?

我们正在考虑计算标志的一些选项:

  1. 使标志集成为一个视图,并使用 SQL 或 PL-SQL(这是一个 Oracle DB)从底层数据实时计算标志值。这样,这些值总是准确的,但性能可能会受到影响,并且规则必须由开发人员维护。

  2. 使标志集由静态数据组成,并使用某种类型的规则引擎使这些标志在基础数据更改时保持最新。这样可以更轻松地维护规则,但标志可能在给定时间点不准确。(如果我们采用这种方法,是否有一个规则引擎可以以这种方式轻松地操作数据库中的数据?)

0 投票
1 回答
1101 浏览

biztalk - Biztalk - 可以以编程方式创建规则/策略吗?

Biztalk 似乎只支持通过设计时工具 Business Rules Composer 来制定规则。

我到处看到“程序化”指的是 Biztalk 的业务规则引擎 (BRE),我只看到您可以在 .NET 中执行规则,但实际上不能创建它们。我找到了 Microsoft.RuleEngine 命名空间,但文档很糟糕,示例为零,我什至无法判断您是否可以使用它来创建规则,或者只是检索规则(我找到的一个示例)。

是否有人知道此 API 是否存在和/或可能有用的博客/参考/文档。

0 投票
2 回答
118 浏览

architecture - 如何将业务规则转移到 3 层架构中的新数据库?

众所周知,三层架构由表示层,业务逻辑和数据库层组成,业务规则(如:存储过程,触发器......)存储在数据库层中,所以当我们想要更换数据库引擎时(如 ms sqlserver)和新的数据库引擎(如 oracle)这些规则必须转移到新的数据库引擎。

我的问题是我们如何自动传输这些规则而不是为新引擎重写它们?

0 投票
1 回答
5133 浏览

ruby-on-rails - 用于 ruby​​ on rails 的动态业务规则引擎

我有一个需要“动态业务规则”引擎的应用程序。一些业务规则变化非常频繁。其中一些申请了一组有限的商业账户。例如:我的客户有一个流程,根据他们的规模、销售人员数量、产品数量、位置等来确定商店的资格。但是他管理不同的帐户,每个帐户对每个属性赋予不同的“权重”。

如何使用 Ruby 实现这个引擎?我知道 Java 有口水,但我发现口水烦人和复杂。而且我更喜欢不必使用 JRuby ......

问候,

鲁本

0 投票
2 回答
166 浏览

database - 如何在数据库中对数据和逻辑进行建模?

我正在为一本杂志开发一个网络应用程序,该应用程序允许用户在线登录和更新他们的订阅。这些订阅是根据一组规则续订的,我想就如何设置这些规则获得一些想法/建议。

此 Web 应用程序与具有订阅者数据的外部(第三方)系统交互。当订阅者登录时,Web 应用程序会从这个第三方系统中获取大量信息,包括一个称为“订阅定义 ID”的数字,它(表面上)表示订阅者拥有的订阅类型。这种订阅类型可能已经过时了几年,因此 Web 应用程序包含一组“订单规范”(存储在数据库中),其中包含当前订阅选项以及当前费率等信息(因此价格可以在订购单上显示给用户)。

我目前的想法是创建一个订阅定义 ID 表,该表映射到给定订阅定义 ID 更新到的订单规范。例如,订阅定义 ID 可能表示十年前的 1 年订阅,当时的价格为 39.99 美元;在数据库中,这将映射到当前订单规格,当前价格为 59.99 美元。

这在理论上工作得很好,但像往常一样,有一个问题。当年设置订阅定义 ID 时,它们并不总是唯一的。特别是,一个订阅定义 ID 具有完全不同的行为,具体取决于上下文。此订阅定义 ID 用于 1 年订阅和 1 年折扣礼品订阅。因此,给定此订阅定义 ID,可能会发生许多事情:

  1. 如果是 1 年订阅,他将使用(当前)1 年订阅进行续订。
  2. 如果它是 1 年折扣礼品订阅并且订阅者没有续订任何其他订阅,它将作为(当前)1 年全价礼品订阅续订。
  3. 如果它是 1 年折扣礼品订阅并且订阅者正在续订其他订阅,则它将作为(当前)1 年折扣礼品订阅进行续订。

我不确定如何在数据库中概括这一点,特别是因为这种复杂情况只发生在一条记录上。我基本上需要一种方法来对上述逻辑进行建模,该方法也可以处理特殊情况的记录。我总是可以在代码中执行此操作,但我不愿意将所有这些业务逻辑放在代码本身中(尤其是在将来出现问题的情况下,使用其他订阅定义 ID)。

对这种数据和逻辑规则组合进行建模的最佳方法是什么?

0 投票
1 回答
5246 浏览

java - Drools 规则中的映射和字符串

我遵循 Drools 规则,我将 map 发送到 element ,但是当它执行时我有 element 。当值应该为“Y”时,为什么我会得到空值?当我在 ACDebug.debug() 方法中放置断点并在 $map.put() 执行后检查地图时,它看起来不错,它的值有“Y”,但是在我的规则执行后我有 null?有没有人有类似的问题?

0 投票
3 回答
2273 浏览

database - 应该在应用层和数据库层中都执行业务规则,还是仅在两者之一中执行?

我一直在我的应用程序层(模型)和数据库层(引发错误的存储过程)中执行业务规则。

出于以下几个原因,我一直在这两个地方重复我的验证:

  1. 如果在检查应用程序代码和检查数据库之间的条件发生变化,则数据库中的业务规则检查将节省时间。数据库还允许我以比在我的应用程序代码中更简单的方式锁定各种记录,所以在这里这样做似乎很自然。
  2. 如果我们必须直接对数据库进行一些批量数据插入/更新,如果我通过执行业务规则验证的存储过程/函数路由所有这些操作,即使我缺少如果我通过应用程序进行单输入,我会得到保护。
  3. 虽然仅在数据库中执行这些操作会对实际数据产生相同的影响,但在首先努力验证它是否符合约束和业务规则之前将数据扔到数据库中似乎是不合适的。

什么是正确的平衡?

0 投票
2 回答
2395 浏览

php - PHP中的约束编程

PHP 是否有任何约束编程库?能够处理这种情况的东西