请问关系数据库里一个表的主键可不可以是另一个表的主键的一部分??

2025-04-17 01:05:02
推荐回答(4个)
回答(1):

主要是看你的意图是什么。现在看你手头有三个表:单位表,类别表,文档表。

按你之前的设计,单位表的主键是单位编号,类别表的主键是单位编号加上类别编号,文档表的主键是单位编号加上类别编号加上文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。

修改之后的设计,单位表的主键是单位编号,类别表的主键是类别编号,文档表的主键是文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。

这样的话,实际上改变的只是类别表的主键和文档表的主键而已,其他的表之间的关联关系都没有改变。需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。所以,正是由于楼主把他们区别开来去分析某一列是主键还是外键,才会越来越混乱。

回答(2):

数据库表关系 一对一、一对多、多对多
你描述的这个是多对多的意思吧。
单位和类别是多对多的关系。
一个单位有多个类别文档。
一个类别文档也有多个单位。
所以他们中间需要一个中间表来建立联系。
中间表需要两个属性(单位的主键、类别的主键)

希望能帮上你。

回答(3):

用外键不是也能完成么?

回答(4):

可以.