在数据库中存储条件逻辑表达式/规则

2024-04-22

如何使用 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(使用前将#替换为@)

在数据库中存储条件逻辑表达式/规则 的相关文章

  • 想要显示图像

    我有一个小问题 我想要一个可以上传和显示图像的 Django 应用程序 目前 它可以上传图像 但无法显示该图像 例如 comment photo 将打印出路径C Users AQUIL Desktop myproject images P1
  • 在 hibernate JPA 的 getReference() 之后,如果不使用 setter 发出 select 则无法更新

    我有以下方法 Transactional public void savethis EntityObject t entityManagerTreasury getReference EntityObject class 1 t setAc
  • SQLite 列错误:表 XXX 没有名为 YYY 的列

    我查看了以下内容 但没有发现任何与我的问题相符的内容 据我所知 android database sqlite SQLiteException 表 X 没有名为 Y 的列 编译时 INSERT INTO https stackoverflo
  • mysql 查询从给定的表结构创建 SEO 友好的 url

    我正在尝试使用下表创建 SEO 友好的 URL 类别表 http sqlfiddle com 2 c474a 4 页表 http sqlfiddle com 2 c474a 5 我正在尝试编写一个 mysql 查询 该查询将使用产生以下输出
  • 可能的 PDOException 错误(MySQL 5)?

    因此 我正在为我的网络应用程序设置一个安装程序 并具有数据库凭据的输入字段 我的验证过程的一部分包括测试数据库连接 使用 PHP 的 PDO 库 如果连接失败 我希望能够区分错误的密码 错误的地址 不存在的数据库名称等 以便我可以引用表单上
  • 从 Hibernate 生成 SQL 脚本

    我正在为我的 Java Swing 应用程序使用 Hibernate 4 3 5 Final 并且我做了很多工作UDPATE INSERT and DELETE与它 在 HQL 中或与Criteria 现在 我想做的是导出对数据库所做的所有
  • 如何将数据从 SQLITE 数据库获取到 Android 中的数组?

    很确定这是一个简单的问题 但我对所有将从游标返回的数据适应不同视图的示例感到困惑 我只想运行原始查询并将返回的每一项数据放入浮点数组中 以便我稍后可以将它们添加起来 我需要为此使用什么 Thanks 当您查询数据库时 您仍然会有一个游标 但
  • 如何使用 Hibernate 3.3.2GA 将 TIMESTAMP WITH TIME ZONE 映射到 Java 数据类型?

    如何映射 Oracle 列类型TIMESTAMP WITH TIME ZONE http download oracle com docs cd B19306 01 server 102 b14225 ch4datetime htm i10
  • PHP/HTML 添加删除按钮

    我有下面的代码来从数据库中检索行 其中用户名列与基本目录名称匹配 username basename dirname FILE username mysql real escape string username result mysql
  • 输入数据库时​​拆分文本框中的文本

    当插入 MS Access 数据库 时 如何将文本框中的单词拆分或放入另一行 例如 我的文本框有这些词 ABC DEF 生长激素指数 JKL 当用户按下回车按钮时 以下单词将被插入到文本框中 但每个单词都会在一个新行中 例如 ABC 将位于
  • 枚举字段的自定义排序顺序

    是否可以将 JPA 中的字母排序更改为自定义排序 我在列中有这些数据division BRONZE SILVER GOLD DIAMOND 我已将其映射到实体字段 public enum Division BRONZE SILVER GOL
  • 字符集和排序规则到底是什么意思?

    我可以阅读MySQL文档而且非常清楚 但是 如何决定使用哪种字符集呢 校对对什么数据有影响 我要求解释这两者以及如何选择它们 来自 MySQLdocs http dev mysql com doc refman 5 0 en charset
  • 在 RDBMS 中何时使用三元关系而不是聚合?

    我想知道什么时候可以表示实体集和三元关系之间的关系 我明白聚合的好处 但是如果实体集和关系集之间的关系中没有属性 为什么还要使用聚合呢 例如 一名研究生 具有学生编号和姓名 正在从事一个项目 具有 pid 开始日期和结束日期 并且学生从事的
  • Java中对象的序列化需要什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我Java中对象序列化的需求是什么 并给我一个示例场景来解释需求 我已经了解什么是序列化 我只是想了解何时使用它以及如何使用它
  • 始终保持数据库连接打开可以吗?

    我在业余时间从事单用户桌面数据库应用程序之类的工作 并且我总是不确定我所做的设计选择 现在 就目前情况而言 每当用户想要与数据库 这是一个本地 SQLite 数据库 因此通常只有一个用户一次看到它 交互时 应用程序就会创建一个新连接 执行它
  • 如何检查 postgres 的 psql 是否自动提交

    我使用的是 postgres 9 5 如何检查自动提交是否打开或关闭 我试过SHOW AUTOCOMMIT我在哪里得到的ERROR unrecognized configuration parameter autocommit 然后我做了一
  • 将计算列设置为非空时遇到问题

    我在将计算列设置为时遇到问题not null 我想要实现的是C001 C002 等 同时将其设置为not null 我在论坛上读到 这可以通过使用 NULL 值的默认值 0 来实现 E g ISNULL Price Taxes 0 我尝试应
  • 如何将 PHP 会话数据保存到数据库而不是文件系统中?

    我有两个网站 一个是 TLS 一个不是 两个都适用于同一个客户端 但我需要这些网站彼此 并且仅彼此 共享通用数据users orders accounts etc 这通常可以通过以下方式完成 SESSION数据 但我显然这些不能跨其他站点工
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前

随机推荐

  • Android Listview添加相同的项目

    我正在开发一个 Android 应用程序 并且正在使用 Android ListView 我从网络服务获取数据并将它们填充到数组列表中 它的大小是 37 然后我尝试用 Arraylist 填充列表视图 但它总是得到相同的元素 最后一个 下面
  • 如何使可能挂起的分叉进程超时?

    我正在编写一个 Perl 脚本 它将写入一些输入并将这些输入发送到外部程序 该程序挂起的可能性虽小但非零 我想将其超时 my pid fork if pid gt 0 eval local SIG ALRM sub die TIMEOUT
  • 在任何项目根目录中都找不到入口文件index.ios.js [“/Users/neo/newProjects/F2”]

    实际行为 从头开始启动 React Native 项目时 我没有启动 而是出现红屏和此错误消息 Cannot Find Entry file index ios js in any of the project root Users neo
  • 将ffmpeg安装到虚拟环境中

    我正在尝试安装ffmpeg以便在 OpenAI 上使用它来录制视频 我已经使用它安装了brew install ffmpeg但不知怎的 当我编译我的代码时 我得到了同样的错误 就像我的包无法识别一样virtualenv我工作的地方 Pyth
  • 无法安装 R 包:CMake 错误

    我正在尝试安装factoextra 但我在 CMake 部分遇到了困难 特别是出现如下错误 CMake Error The source directory tmp does not exist 当我尝试安装其依赖项时也是如此 nloptr
  • ruby yaml ypath 和 xpath 一样吗?

    你好 我有一个像这样的 yaml 文件 data date 2004 06 11 description First description date 2008 01 12 description Another descripion 我如
  • Corda 流的任一侧可以存在于单独的 Cordapp 中吗?

    如果一个节点想要在流的一侧执行自己的特定业务逻辑 如何实现 例如 如果一家公司想要调用内部公司 api 来验证传入的交易数据 它可以在流程中执行此操作吗 如果是这样 是否需要通用地编写流程 以便所有使用相同 Cordapp 和流程 的公司调
  • 读取文件内容并查询数据。蟒蛇3.5.1

    我正在尝试查询我保存在的销售记录data txt文件 每行以逗号分隔
  • 使用 R 将 Excel (.xlsx) 工作表打印/保存为 PDF

    我想打印一个Excel文件到一个pdf操作后的文件 对于操作 我使用了 xlsx包工作正常 有一个功能printSetup但我找不到启动打印的功能 有解决办法吗 library xlsx file lt test xlsx wb lt lo
  • 更改包名称

    我打算通过smali reverse 更改包名 当我打开 apktool yml 时 我看到了这个 强制包 ID 127 我尝试过更改它 但它崩溃了 我为什么要这样做 假设您的目标是重命名 apk 的包名称 则用于类的包名称是无关的 apk
  • THREE.js 导入的模型不应用面部纹理

    我正在尝试导入使用 THREEJS 导出器从搅拌机导出的模型 到目前为止 模型已加载并出现在我的场景中 并且正确应用了材质 汽车应为黄色 玻璃应为透明 但它并没有将我的纹理应用到以 tga 形式保存的汽车上 如果我不将纹理包含在模型所在的服
  • 为什么使用工厂而不是“新”?

    我正在看书其中指出 EMF 编程模型强烈鼓励但不要求 使用工厂来创建对象 而不是简单地使用 new 运算符创建 对象 为什么鼓励使用工厂new 您的答案不必是特定于 EMF 的 只要它与 Java 有关即可 您可以阅读 Effective
  • ng-repeat 没有 HTML 元素(这次真的没有任何)

    我想要得到类似的东西 Line 1 br Line 2 br Line 3 br Line 4 br Line 5 br 使用 ng repeat 各行之间不应有任何分隔符 除了 br 这是一个硬编码的简单指令 br HTML p p ap
  • 如何在 Webpack 中正确使用命名空间 Typescript

    我正在使用 webpack 开发一个新项目 这是我第一次尝试使用这个工具 自从 1 年以来 我一直使用 typescript 针对 angularJS 1 5 进行开发 并且从未遇到过与命名空间相关的任何问题 src App Core Ht
  • 在 Win 7 上安装 Python 2.7 32 位:没有注册表项?

    我已从 python org 下载了 Python 2 7 2 Windows x86 32 位 MSI 并将其安装在 64 位 Windows 7 系统上 一切正常 至少命令行解释器启动并运行 但安装过程不会创建任何PythonWindo
  • `fgetc()` 可能返回 `EOF` 的所有原因是什么?

    当然fgetc 回报EOF when 文件结尾 or an 输入错误 occurs 这就是全部吗 这是否意味着没有更多数据可用 FILE inf int ch while ch fgetc inf EOF if feof inf puts
  • Android中AIDL的实时示例和使用?

    我想知道aidl 的实时示例及其使用 我研究了有关此主题的android 开发人员博客 我无法在实时世界中实现这一点 谁能举个例子告诉我 AIDL用于以某种格式共享数据 primitive and parcelable 与其他应用程序 现实
  • 使用 Adob​​e Air 证书签署 Android Native apk

    我需要帮助使用为 Adob e Air 生成的现有 p12 证书来签署 Android 本机应用程序 几年前 应用程序在 Adob e Air 中完成 签名并发布到 Google Play 现在 当从 Adob e Air 迁移到 Andr
  • 通过 CSS 注入 HTML

    我需要基本上设置content来自 CSS 的 HTML 内容 我目前正在执行以下操作 myclass content img src 然而 我看到的不是图像 而是文字 img src hello png 如何使用 CSS 注入任意 HTM
  • 在数据库中存储条件逻辑表达式/规则

    如何使用 RDBMS 存储逻辑表达式 我标记对象并希望能够基于这些标记构建事实陈述 这些可能被视为虚拟标签 Tags new for sale used offer Rule second hand goods new or used an