1

我有 2 张桌子:

group_config (id_group_config, owner_id, name_group_config)

group (id_group, id_group_config, name_group) - id_group_config is FK to group_config

所以基本上,一个用户(owner_id)创建一个 group_config,然后创建一个引用这个 group_config 的组。非常标准,但我想要一个约束,即每个 owner_id 的 name_group 必须是唯一的。

我发现这样做的唯一方法是在组表上复制 owner_id,这可能会导致不一致。

我错过了什么吗?

谢谢

4

1 回答 1

0

由于没有 owner_id 就无法存在 group_config 您应该使 group_config 的 PK 成为由 owner_id 和 group_config_id 组成的复合 PK。您需要注意这里的参照完整性约束,例如当您删除所有者时会发生什么?

这将自动使组中的 FK 成为该复合键。

要使组表中每个所有者的 name_group 唯一,您需要创建一个由列 owner_id 和 name_group 组成的唯一索引。

于 2013-10-02T05:16:42.293 回答