如何使用 RDBMS 存储逻辑表达式?
我标记对象并希望能够基于这些标记构建事实陈述。 (这些可能被视为虚拟标签。)
Tags
new
for_sale
used
offer
Rule
second_hand_goods = (!new or used) and for_sale
new_offer = new and offer
second_hand_offer = second_hand_goods and offer
- 规则应该能够引用标签和其他规则。
- 最好是可以通过 hibernate 轻松访问的模式。
- 最好可以在一次选择/调用中检索整个规则?
你们如何在数据库中存储表达式和业务规则?
提前致谢。
Update
需要明确的是,这些规则不供数据库内部使用,而是由需要保留这些标签和规则的外部应用程序创建和使用。谢谢。
从实用的角度来看,如果计算所需的所有列都位于同一个表中,则可以在数据库上创建计算字段 - 计算字段只能在单个记录中工作。大多数现代 DBMS 平台都对此功能提供一定支持。
从理论的角度来看,你正在进入语义数据建模 http://en.wikipedia.org/wiki/Semantic_data_model。这方面最好的论文是 Hammer 和 MacLeodsRuritanian Oil Tankers http://imsc-dmim.usc.edu/publications/p351-hammer.pdf论文描述了一种语义数据建模符号,被想象地称为 SDM。 SDM 使用结构化英语类型符号来标记您所描述的数据库规则。如果您想推广您的功能并且不介意为 SDM 编写解析器,您可以创建一个可以配置此类逻辑的规则引擎。这种类型的模型也应该能够适应 O/R 映射器。
不利的一面是,制作这种工具将非常耗时,因此只有当您对管理数据语义的需求非常大时才值得这样做。对于您引用的示例,它很适合过度杀伤的领域,但如果您的问题更大,则可能值得构建这样的东西。如果您不想编写解析器,您可以创建一个 XML 模式来标记类似 SDM 的语言。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)