【问题标题】:Modelling Business Rules Data建模业务规则数据
【发布时间】:2016-06-07 16:20:32
【问题描述】:

我在这里遇到了一个设计问题。我正在尝试为规则表建模。

我的示例规则如下: 给定一个数据行,我会检查所有配置的规则,如果任何列名匹配值规则,就会被命中。

例如

如果列 country 具有 US 作为值,则现在在传入数据行中,我将达到规则 1003。

以这种方式设计我的规则表有助于我轻松地将任何列(这是数据行的一部分)添加到规则中。我的用户可以查看规则并自行管理。

现在这里的问题是优先级列。每当需要添加优先级介于两者之间的新规则时,我需要在此之后更新所有行的优先级。 例如,在上面的示例中,我需要在优先级 3 处添加一些内容: 下面我需要更新两个规则。

随着表变大,不断更新所有行将变得难以管理。这让我觉得必须有更好的解决方案。

我需要优先级列,因为需要定义需要选择规则的顺序。

有人可以建议这个用例的更好的规则模型吗?

PS 由于我的执行环境,我不能使用 drools 或任何规则引擎。

谢谢

【问题讨论】:

    标签: java database-design data-modeling modeling


    【解决方案1】:

    我有几个建议可以减少需要更多更新的问题

    优先级列中的值必须是连续的吗?如果没有,请使用具有大量间隙的值(例如 100、200、300...)设置初始规则集,这不会影响排序,并且可以在空格中添加任何新规则。

    任何独占的规则子集都可以共享相同的优先级值,例如只有一个“国家”规则会匹配,因此无需依次评估它们(当然,您应该在这里考虑性能,如果 90% 的国家/地区规则将匹配“美国”,那么评估这个仍然是有意义的首先)。

    除了更新问题之外,当前设计还有一些其他限制。例如如果将来您想以不同于美国股票的方式对待英国股票,您将如何制定这些规则?

    【讨论】:

      猜你喜欢
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多