如何使用mysql确定外键的基数

Cod*_*ank -1 mysql foreign-keys cardinality relationship

我陷入了一个问题,我必须找到使用mysql的表之间关系的基数.关注这篇文章
MySQL:如何以编程方式确定外键关系?
我找到了与我的表和外键相关的所有表.现在我也想找到关系的基数,即一对一,一对多或多对多.任何想法或片段都将受到高度赞赏

MvG*_*MvG 6

我们假设该表A有一个外键f,它引用k表的主键B.然后,您可以从架构中学习以下内容:

  • 如果存在UNIQUE约束A.f,则A每行中最多只能有一行B.请注意,在多列索引的情况下,唯一约束的所有列必须是外键的一部分.您可以使用SHOW INDEX FROM tablename WHERE Non_unique = 0获取有关表的唯一性约束的信息.
  • 如果A.f声明NOT NULL,那么总是会有至少一排B中的每一行A.您可以使用SHOW COLUMNS FROM tablename列出列并查看哪些列允许NULL值.

如果您解读"一"为"零或一",那么你得到一个到一个采用了独特的约束关系,以及多到一个(在IE中许多行关系A指的是一排B)没有这样的独特的约束.

一个多到许多关系将使用一个单独的表,其中每一行代表关系的一个元素,来模拟多到一的关系,为它包含的两个外键.