请问关系数据库里一个表的主键可不可以是另一个表的主键的一部分??
假如一个表里有一个属性A,是主键,另一个表里有两个属性A和B两个属性合起来才能唯一的表示这个表里的一个条目,那么按照主键的定义这两个属性合起来才是主键,单独的一个都不能成...
假如一个表里有一个属性A,是主键,另一个表里有两个属性A和B两个属性合起来才能唯一的表示这个表里的一个条目,那么按照主键的定义这两个属性合起来才是主键,单独的一个都不能成为主键,那么这样A就是一个表的主键又是另一个表的主键的一部分,请问这样可以吗??
我做了一个简单的文档管理系统,有单位表,单位编号相当于上述的A,然后还有一个文档类别表,我是想每个单位有自己单独的类别而不是和其他单位在同样的类别中选择,所以类别表我就想让单位编号和类别编号合起来作为主键,这样每个单位都可以从1开始给类别编号,请问这样可以吗??
还想请问一下,不同的数据表之间的关系有哪些??
问题篇幅有些大,希望广大好心人解答一下,谢谢!!
我还有一个文档表,是单位编号,类别编号,和文档编号三个属性作为主键,这样每个单位的每个类别的文档都可以从1开始编号,不知道大家明不明白我的意思,我越想越觉得不对,是不是类别表应该以类别编号作为主键,单位编号作为外键,这样所有单位的所有类别都统一编号(我开始就是因为不想统一编号所以才那样做的),然后文档表也应该是以文档编号作为主键,单位编号和类别编号作为外键,这样所有单位所有类别的文档都统一编号(我开始就是因为不想统一编号而是想每个单位每个类别的文档都从1开始编号所以才那样做的),现在才觉得好像应该是这么做的。
希望大家能指导一下,谢谢,谢谢,非常感谢!!
谢谢大家的回答,我想再请问三楼说的“需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。”这句话是什么意思啊?能解释一下为什么没有意义吗??非常感谢!! 展开
我做了一个简单的文档管理系统,有单位表,单位编号相当于上述的A,然后还有一个文档类别表,我是想每个单位有自己单独的类别而不是和其他单位在同样的类别中选择,所以类别表我就想让单位编号和类别编号合起来作为主键,这样每个单位都可以从1开始给类别编号,请问这样可以吗??
还想请问一下,不同的数据表之间的关系有哪些??
问题篇幅有些大,希望广大好心人解答一下,谢谢!!
我还有一个文档表,是单位编号,类别编号,和文档编号三个属性作为主键,这样每个单位的每个类别的文档都可以从1开始编号,不知道大家明不明白我的意思,我越想越觉得不对,是不是类别表应该以类别编号作为主键,单位编号作为外键,这样所有单位的所有类别都统一编号(我开始就是因为不想统一编号所以才那样做的),然后文档表也应该是以文档编号作为主键,单位编号和类别编号作为外键,这样所有单位所有类别的文档都统一编号(我开始就是因为不想统一编号而是想每个单位每个类别的文档都从1开始编号所以才那样做的),现在才觉得好像应该是这么做的。
希望大家能指导一下,谢谢,谢谢,非常感谢!!
谢谢大家的回答,我想再请问三楼说的“需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。”这句话是什么意思啊?能解释一下为什么没有意义吗??非常感谢!! 展开
4个回答
展开全部
主要是看你的意图是什么。现在看你手头有三个表:单位表,类别表,文档表。
按你之前的设计,单位表的主键是单位编号,类别表的主键是单位编号加上类别编号,文档表的主键是单位编号加上类别编号加上文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。
修改之后的设计,单位表的主键是单位编号,类别表的主键是类别编号,文档表的主键是文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。
这样的话,实际上改变的只是类别表的主键和文档表的主键而已,其他的表之间的关联关系都没有改变。需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。所以,正是由于楼主把他们区别开来去分析某一列是主键还是外键,才会越来越混乱。
按你之前的设计,单位表的主键是单位编号,类别表的主键是单位编号加上类别编号,文档表的主键是单位编号加上类别编号加上文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。
修改之后的设计,单位表的主键是单位编号,类别表的主键是类别编号,文档表的主键是文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。
这样的话,实际上改变的只是类别表的主键和文档表的主键而已,其他的表之间的关联关系都没有改变。需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。所以,正是由于楼主把他们区别开来去分析某一列是主键还是外键,才会越来越混乱。
展开全部
数据库表关系 一对一、一对多、多对多
你描述的这个是多对多的意思吧。
单位和类别是多对多的关系。
一个单位有多个类别文档。
一个类别文档也有多个单位。
所以他们中间需要一个中间表来建立联系。
中间表需要两个属性(单位的主键、类别的主键)
希望能帮上你。
你描述的这个是多对多的意思吧。
单位和类别是多对多的关系。
一个单位有多个类别文档。
一个类别文档也有多个单位。
所以他们中间需要一个中间表来建立联系。
中间表需要两个属性(单位的主键、类别的主键)
希望能帮上你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用外键不是也能完成么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询