首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有办法限制单个表索引的外键引用数?

问是否有办法限制单个表索引的外键引用数?
EN

Database Administration用户
提问于 2015-10-17 03:46:02
回答 1查看 3K关注 0票数 3

我很难找到答案,因为我很难表达这个问题。所以我很抱歉,如果他们是一个重复(或类似的)问题在这里。

是否有办法限制MySQL中对特定外键的引用数?

通过隐喻解释:

把它想象成一个有“领导者”的学习小组。你有一张“领袖”桌,还有一张“会员”桌。

是否有办法防止每个“领导者”通过外键分配超过“x”号的“成员”?

或者,这是我在创建“成员”时首先要做的事情吗?即。检查已经存在多少引用并更改外键(如果ID > 'x number‘)的一些方法

谢谢你的帮助或指导,你可以给!

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-10-17 07:25:34

我不确定这是否是一个非常干净的解决方案,但可能会奏效。

假设您有一个Leader表和一个Member表。创建第三个表,LeaderMember。它应该有三列:LeaderID、MemberID和MemberNumber。LeaderID和MemberID都是各自表的外键。

CREATE TYPE用于MemberNumber列,限制它可以使用的整数值,例如从1到8。

现在,在表上施加两个约束。首先是UNIQUE对MemberID的约束,它确保成员只能有一个领导者。然后是一个UNIQUE约束,用于(LeaderID, MemberNumber)列的组合。这将意味着每个领导者只能拥有尽可能多的成员,因为MemberNumber可能有不同的价值观。

我可以看到这方面的一些缺点--首先,插入一个新的Member有点棘手,因为您必须找到一个尚未使用的MemberNumber值。请记住,无论如何,您必须在这一点上进行检查--看看所讨论的Leader是否已经有足够的成员。其次,MemberNumber的类型可能意味着具有不同值的成员之间存在一些差异--数字是有意义的。

然而,我认为这是一个相当干净和规范化的设计。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/118314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档