0

我们可以使用检查约束来强制引用约束吗?假设我有一列包含 UUID;此 UUID 可以根据第二列的值引用表 A 或 B。

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

所以记录#1指向员工表中的一条记录,#2指向存储表中的一条记录,带有各自的PK。所以目标是强制执行基于“类型”的参照完整性。

4

1 回答 1

2

不是这个数据模型,不。

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

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

于 2021-03-05T21:55:18.317 回答