+ -
当前位置:首页 → 问答吧 → 数据库联合主键的疑问

数据库联合主键的疑问

时间:2011-11-10

来源:互联网

看数据库设计的时候,遇到了一个地方不是很懂。

把一个m:n联系转换为一个关系模式的时候,比如   学生和课程的选修关系是多对多

选修(学号,课程号,成绩)

书上的写法是把学号和课程号设成联合主键,但是我的学长说联合主键的用法不常见。(他的意思是另设一个序号id当主键)
我很不解,我感觉这样设计很好呀,学号和课程号共同决定了成绩,我想问下真正项目设计数据库的时候联合主键的使用常不常见?以及为什么不用联合主键的原因。。。。

PS:这个板块熟人比较多,就懒得去找数据库板块了。。。

作者: yellowbaby   发布时间: 2011-11-10

这里就是数据库板块,呵呵

如果存在一个学生的多次同一个考试(课程号),这个时候你设置联合主键就不能满足这个需求了。

联合主键特点之一就是唯一性,如果业务有违反这个情况就不能设置。

作者: oswica   发布时间: 2011-11-10

这个理由。。太牵强了吧。。。
假如成绩是平均成绩呢?总不会有多个平均成绩吧。。。。。

作者: yellowbaby   发布时间: 2011-11-10

引用:
联合主键特点之一就是唯一性,如果业务有违反这个情况就不能设置。
这个我明白了,我现在的问题是:假如满足唯一性,是采用联合主键还是另设ID?
我在网上看到说联合主键的效率似乎低些,我学完马上就要用了,你就帮我分析一下嘛。。。。

作者: yellowbaby   发布时间: 2011-11-10

引用:
原帖由 yellowbaby 于 2011-11-10 15:26 发表

这个我明白了,我现在的问题是:假如满足唯一性,是采用联合主键还是另设ID?
我在网上看到说联合主键的效率似乎低些,我学完马上就要用了,你就帮我分析一下嘛。。。。 ...
最好点引用,不然别人看不到提示的;
。。。。

作者: 月夜幻影   发布时间: 2011-11-10

我觉得和设计范式有关。

作者: rdfbj   发布时间: 2011-11-10

热门下载

更多