我一直在开发一款软件,它采用“A Disallows B”或“X Requires Y”形式的规则来制作一个允许你配置复杂项目的应用程序。
为了更全面地描述它,假设你有一个级别的文件夹,它有一些子文件夹,每个子文件夹都有一些项目。目的是以一种帮助用户创建有效选择集合的方式表达项目之间的关系。
所以实际规则看起来更像'All(A,B,C)Disallows Any(X,Y,Z)',它表明如果用户选择A,B和C,他们就不能选择任何X,Y或Z.它基本上只是布尔逻辑。
还有其他类型,比如说如果你选择A然后你也必须选择B,但是不值得深入了解所有这些。
这不是业务逻辑(至少不是正常意义上的),并且规则可以随时改变(并且它们将会),因此需要从字符串中读取它们并通过复杂的数据库结构进行解释或连接(我宁愿远离)。
真正的观点是:是否存在某种处理这种运行时行为的系统或框架?我知道Oracle有一个名为“Oracle Configurator”的东西,它正是我所说的,但我认为它的成本过高。
项目已经结束了,我已经建立了一个“工作”系统,但我正在尝试进行验尸,看看它是否可以做得更好/更快/更便宜。
答案 0 :(得分:0)
您可能对Prolog感兴趣。
答案 1 :(得分:0)
我相信Oracle Configurator只是电子商务套件中的一个模块。这不是您可以加载到现有数据库和应用程序中的东西。
您可能想要查看DBMS_RULE以查看它是否能满足您的需求。
答案 2 :(得分:0)
Sterling配置,价格,报价,SAP Configurator和Oracle Configurator是其中的一些选项。