一尘不染

连接两个表的表是否应具有自己的ID?

sql

我有两个表:

First
------
id
name

Second
------
id
name

和连接前两个表的另一个表:

Third
------
first_id
second_id

第三个表 用于解决M:N问题。它应该有自己的ID吗?


阅读 186

收藏
2021-05-16

共1个答案

一尘不染

如果表仅包含两个外键,则没有理由拥有附加键。您将不会在任何查询中使用它。

使用连接表联接表时,您一次是针对一个外键进行联接,而不是一次针对两个外键进行联接,因此连接表中没有其他键可使用。例子:

select t1.name, t2.name
from First t1
inner join Third t3 on t3.first_id = t1.id -- one foreign key
inner join Second t2 on t2.id = t3.second_id -- the other foreign key

只需将两个外键组合成一个主键即可。

 PRIMARY KEY (first_id, second_id)
2021-05-16