当两个外键出现时,它必须是多对多的关系吗?

时间:2012-02-17 18:26:49

标签: mysql sql database-design

这个问题可能很愚蠢,但我只是想确认一下我是否正确理解了基本的理解,所以:

当表中出现两个外键时,

必须many to many relationship吗?

或者两个外键在表格中是否还有其他条款/原因?

2 个答案:

答案 0 :(得分:6)

反示例:

create table eg1 (
  id int primary key,
  id1 int,
  id2 int,
  foreign key (id1) references othertable.id,
  foreign key (id2) references sometable.id,
  UNIQUE INDEX `id1_UNIQUE` (`id1` ASC)
);

这不是多对多关系,因为id1是唯一的。它有两个外键,但表示与另外两个表的1:n和1:1关系。

答案 1 :(得分:1)

我不相信情况永远如此。我可以想到表中有多个FKeys的几种情况。例如:

<强> tblShirts
ShirtId int(PKey)
ColorId int(FKey tblColors)
SizeId int(FKey tblSizes)
StyleId int(FKey tblStyles)
价钱
QtyOnHand int

在此示例 tblColors 中, tblSizes tblStyles 是简单的查找表。无需创建链接表来解决多对多关系。