2016-02-25 74 views
0

我在這裏得到了一個設計問題。我試圖建立一個規則表。建模業務規則數據

我的示例規則是這樣的: 給定一個數據行,我會遍歷所有配置好的規則,並且如果任何列名匹配值規則將被命中。

enter image description here

現在

傳入數據行如果列國家美國的價值,我會打規則1003

我的設計規則表這種方式可以幫助我添加任何列(這是數據行的一部分)來輕鬆規則。我的用戶可以查看規則並自行管理。

現在這裏的問題是與優先列。無論何時需要添加具有優先級的新規則,我需要在此之後更新所有行的優先級。 例如在上面的例子中,我需要添加一些優先級3: 下面我需要更新兩個更多的規則。 enter image description here

隨着表變得越來越大,它不會易於管理更新所有行。這讓我覺得必須有更好的解決方案。

我需要優先級列,因爲需要定義需要選擇規則的順序。

有人可以請告知什麼會是這個用例更好的規則模型?

PS我不能使用drools或任何規則引擎,因爲我的執行環境。

感謝

回答

1

我有幾個建議,將減少有更多的更新,必要

不要在優先級列中的值的問題必須是連續的?如果不是,則設置具有大量間隔值的初始規則集(例如100,200,300 ...),這不會影響排序,並且可以在空間中添加任何新規則。

任何獨佔規則的子集可以共享相同的優先級值,例如只有其中一個「國家」規則會匹配,因此不需要依次對它們進行評估(當然,如果90%的國家/地區規則匹配「美國」,那麼您應該考慮這裏的表現,那麼評估這個規則也是有意義的第一)。

當前設計還有一些其他限制超出了更新問題。例如如果將來你想把英國股票與美國股票區別開來,你會如何制定這些規則?