我有两张桌子:
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的组。非常标准,但我想要一个约束,name_group必须是每个owner_id唯一。
我发现这样做的唯一方法就是复制组表上的owner_id,这可能会导致不一致。
我错过了什么吗?
感谢
答案 0 :(得分:0)
由于没有owner_id就不能存在group_config你应该将group_config的PK作为由owner_id和group_config_id组成的复合PK。您需要注意参考完整性约束,例如:删除所有者后会发生什么?
这将自动使组中的FK成为该复合键。
要使组表中每个所有者的name_group唯一,您可以创建一个由列owner_id和name_group组成的唯一索引。