微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查约束以强制执行参照完整性?

如何解决检查约束以强制执行参照完整性?

我们可以使用检查约束来强制引用约束吗?假设我有一列包含 UUID;这个 UUID 可以引用表 A 或 B,具体取决于第二列的值。

------------------------------------------
|ID      | Type      | PK in Other Table |
------------------------------------------
|1       | Employee  |    500            |
------------------------------------------
|2       | Store     |    7000           |
------------------------------------------

所以记录#1 指向employee 表中的一条记录,#2 指向带有相应PK 的store 表中的一条记录。所以目标是强制基于“类型”的引用完整性。

解决方法

不是这个数据模型,不是。

您可以有单独的列,即 employee_idstore_id,对适当的表有外键约束和检查约束,确保只有特定 type 的正确列是进入。

根据您实际建模的内容,可能还有其他设置数据模型的方法。我有点难以将员工和商店视为某些更高级别类型的独立子类型。但是,如果您的实际用例是别的,那么拥有一个超类型表可能是有意义的,它是所有表都是其子级的实际父级。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。