与表无关的外键?

2024-03-11

首先,我确实读过这个 StackOverflow 问题 https://stackoverflow.com/questions/294969/sql-one-foreign-key-references-primary-key-in-one-of-several-tables,所以不需要指出我的方向。

我现在正在研究类似的问题。具体来说,我有一个带有审核表的数据库,该表用于存储有关数据库中其他表的审核信息。该表的基本形式为:

ID、EntityID、EntityTypeID、ActionTypeID、日期时间

现在,正如您可以猜到的,EntityID 的通用性质意味着与此表之间的外键关系很难管理,尤其是在您通过 ORM 系统进行混合的情况下。

当然,繁重的工作解决方案是手动执行所需的查询并在有效的地方使用 ORM 内容,我对此很满意。

然而,这个问题确实在我的脑海中提出了一个问题:是否存在允许定义以下形式的外键关系的 RDBMS:Table:ID。

换句话说,在这样的 RDBMS 中,EntityTypeID 列可能包含以下值:

“表A:1”和“表B:somekey”

So...

有没有 RDBMS 可以做到这一点?


审计表通常不能有引用完整性约束。审核表 A 记录有关某个表 T 中的一行数据 R 的信息,并包含 R 的一系列记录,每个记录代表不同时间的 R。当 R 随后被修改时,A 中的信息不会改变,并且不允许阻止对 R 的更改。当 R 随后被删除时,A 中审计记录的存在不允许阻止该删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与表无关的外键? 的相关文章

  • MySQL 清除表中的重复条目并重新链接依赖表中的 FK

    这是我的情况 我有 2 张桌子 patient and study 每个表都有自己的 PK 使用自动增量 就我而言 pat id 应该是唯一的 它没有在数据库级别声明为唯一 因为它在某些用途中可能不是唯一的 它不是自制系统 我找到了如何配置
  • Hibernate 本机查询:无效的列名错误 SQL-17006

    package com abc def model import javax persistence Column import javax persistence Id import javax persistence Entity im
  • mySQL中外键必须是索引吗?

    我刚刚自己创建了第一个 mySQL 表 除了使用 Joomla Wordpress 等 我是 MS SQL 开发人员多年 但通常我可以轻松地在 MS SQL 中创建外键 但我遇到了困难或这里缺乏知识 这是我的表格 users user id
  • MVC 中的外键注释

    我有两张桌子 State StateID int StateName string City CityID int StateID int CityName string 我正在使用代码优先方法开发 MVC4 代码 我正在使用State a
  • 如何在 Django ORM 中更改 PostgreSQL 的默认空排序行为

    默认情况下 PostgreSQL 将 NULL 值视为最高值 因此对于降序查询 首先对它们进行排序 对于升序查询 最后对它们进行排序 您可以通过指定 NULLS LAST 或 NULLS FIRST 在每个查询或创建索引时修改此行为 如何将
  • 如何将 Jinja 与 Twisted 一起使用?

    我正在计划使用 Python 与 Twisted Storm 和 Jinja 一起开发一个讨论软件 问题是 Jinja 不是为 Twisted 或异步套接字库而设计的 并且使用 Twisted 提供的性能是我不打算使用 Flask 的原因
  • 如何从其他表填充表的外键

    我有以下表格 其中translation是空的 我正在尝试填充 translation id translated language id template id language id langname langcode template
  • SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 laravel 9

    尝试分配外键 但是当您运行迁移时 我收到此错误 我不明白问题是什么 SQLSTATE HY000 一般错误 1215 无法添加外键约束 SQL alter tablecategories添加约束categories parent key f
  • 外键约束可能会导致循环或多个级联路径[重复]

    这个问题在这里已经有答案了 可能的重复 外键约束可能会导致循环或多级联路径 https stackoverflow com questions 851625 foreign key constraint may cause cycles o
  • 绕过外键约束强制删除mysql

    我试图从数据库中删除除一个表之外的所有表 最终出现以下错误 无法删除或更新父行 外键约束失败 当然 我可以反复试验来看看这些关键约束是什么 并最终删除所有表 但我想知道是否有一种快速方法来强制删除所有表 因为我将能够重新插入那些我想要的表
  • Rails 中的多列主键

    我正在尝试将桌面应用程序迁移到rails 还处理相当老式的现有数据库 问题是我在一列中没有唯一的 ID 但表的三列保证了记录的唯一性 鉴于我有三个表 authors author name author letter author nr1
  • 单向关系和双向关系的区别

    我想知道这两个词是什么意思 我遇到他们是在教义的文档 http www doctrine project org documentation manual 2 0 en association mapping 但我不明白他们的意思 这与常见
  • Hibernate 抛出奇怪的错误:类未映射

    这是错误 org hibernate hql ast QuerySyntaxException Payment is not mapped select p from Payment p 我不明白为什么会抛出这个错误 应该映射该类 正如我将
  • PetaPOCO 和超过 4 个加入

    petapoco 是否能够实现以下目标 1 一次查询无限连接 2 一次查询无限的一对多关系 我查看了 PetaPOCO 它似乎无法执行超过 4 个连接 最长的签名如下所示 db Query 似乎它也支持一对多关系 但仅适用于一个复合对象 如
  • 错误代码:1822(当数据类型匹配且具有复合键时)

    得到一个 错误代码 1822 添加外键约束失败 丢失的 引用表中约束 subject ibfk 1 的索引 注册 当尝试创建subject桌子 问题是 错误并没有出现在上一张表上student 数据类型相同 并且定义了主键 两者都会出现此错
  • Postgres 运行缓慢的删除查询

    我们有一个表 其行数刚刚超过 62k 我们正在对其运行一个非常简单的删除查询 需要 45 分钟才能完成 DELETE FROM myTable WHERE createdtime lt 2017 03 07 05 00 00 000 我们尝
  • 将数据从电子表格迁移到 RDBMS 的策略是什么?

    这与我的另一个问题相关何时从电子表格迁移到 RDBMS https stackoverflow com questions 2395607 when to switch from spreadsheet to rdbms 决定从 Excel
  • 如何将事物的组合映射到关系数据库?

    我有一个表 其记录代表某些对象 为了简单起见 我假设该表只有一列 这是唯一的ObjectId 现在我需要一种方法来存储该表中的对象组合 组合必须是唯一的 但可以是任意长度 例如 如果我有ObjectIds 1 2 3 4 我想存储以下组合
  • mybatis:使用带有 XML 配置的映射器接口作为全局参数

    我喜欢使用 XML 表示法来指定全局参数 例如连接字符串 我也喜欢 Mapper 注释 当我尝试将两者结合起来时 我得到这个例外 https stackoverflow com questions 4263832 type interfac
  • 如何使用 SQL 通过表示多级订单的 varchar 字段正确排序?

    我不太喜欢数据库 我发现在查询上出现以下问题SQL服务器数据库旧的遗留应用程序的 我声明不幸的是我无法更改数据库结构 字段类型 这非常难看 我有以下情况 SELECT Sottocategoria IdSottocategoria IdCa

随机推荐