日期:2014-05-17  浏览次数:20546 次

主键,外键,多个主键问题??
3个表:
studentinfo(sno,sname,ssex,school,sbirth)
coursinfo(cno,cname,credit)
scinfo(sno,cno,score)
显然第一个表主键是sno,第二个表主键是cno,但是第三个表的主键应该是(sno,cno)的组合吧?那怎么弄呢?可以用两个外键的组合当主键吗?

------解决方案--------------------
像第三个表的主键一般都是另建一列,sno和cno上再分别建外键,链接studentinfo,coursinfo
------解决方案--------------------
studentinfo(sno(主键),sname,ssex,school,sbirth)
coursinfo(cno(主键),cname,credit)
scinfo(sid(新建一列主键),sno,cno,score)

------解决方案--------------------
引用:
studentinfo(sno(主键),sname,ssex,school,sbirth)
coursinfo(cno(主键),cname,credit)
scinfo(sid(新建一列主键),sno,cno,score)


顶,经常做插入更新操作的话,搞个也业务逻辑无关的id做主键也不错
------解决方案--------------------
引用:
3个表:
studentinfo(sno,sname,ssex,school,sbirth)
coursinfo(cno,cname,credit)
scinfo(sno,cno,score)
显然第一个表主键是sno,第二个表主键是cno,但是第三个表的主键应该是(sno,cno)的组合吧?那怎么弄呢?可以用两个外键的组合当主键吗?
              ……
可以做啊,很多设计都这样的拉。