如何解决检查约束以强制执行参照完整性?
我们可以使用检查约束来强制引用约束吗?假设我有一列包含 UUID;这个 UUID 可以引用表 A 或 B,具体取决于第二列的值。
------------------------------------------
|ID | Type | PK in Other Table |
------------------------------------------
|1 | Employee | 500 |
------------------------------------------
|2 | Store | 7000 |
------------------------------------------
所以记录#1 指向employee 表中的一条记录,#2 指向带有相应PK 的store 表中的一条记录。所以目标是强制基于“类型”的引用完整性。
解决方法
不是这个数据模型,不是。
您可以有单独的列,即 employee_id
和 store_id
,对适当的表有外键约束和检查约束,确保只有特定 type
的正确列是进入。
根据您实际建模的内容,可能还有其他设置数据模型的方法。我有点难以将员工和商店视为某些更高级别类型的独立子类型。但是,如果您的实际用例是别的,那么拥有一个超类型表可能是有意义的,它是所有表都是其子级的实际父级。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。