菜鸟的问题:什么是联合主键?
小弟在这里请教各位大侠:什么是联合主键(5分)?他是有什么作用的,能举出一个实际应用的例子吗?(10分)怎么建立联合主键在sql2005中(5分)
[解决办法]
联合主键,就是用多个列来做主键.?
作用.
如一个关系模式
学生成绩(学号,课程号,成绩)
那学号和课程号就可以做为联合主键.
因为学号和课程号决定了成绩.也就是说.你要知道成绩..你就要知道学号,知道学号,但还不能知道某一科的成绩.还要知道课程号.
所以函数依赖关系是{学号,课程号}->{成绩}
alter table tb
add constraint PK_ID primary key(学号,课程号)
go
[解决办法]
一个确定不了唯一,需要多个组合来确定唯一。
[解决办法]
联合主键就是表中2个或者2个以上的字段做为这个表的主键,通常多对多的关系表中使用联合主键.例如有表学生,表课程,另外一个表选课,选课表用来记录每个学生所选的课程,这个选课表就可以用联合主键.
SQL 2005中可以用
CREATE TABLE [学生]( [学生ID] [int] NOT NULL, [学生姓名] [varchar(20)] NULL, CONSTRAINT [PK_学生] PRIMARY KEY CLUSTERED ( [学生ID]))CREATE TABLE [课程]( [课程ID] [int] NOT NULL, [课程名称] [varchar(50)] NULL, CONSTRAINT [PK_课程] PRIMARY KEY CLUSTERED ( [课程ID]))CREATE TABLE [选课]( [学生ID] [int] NOT NULL, [课程ID] [int] NOT NULL, CONSTRAINT [PK_选课] PRIMARY KEY CLUSTERED ( [学生ID], [课程ID]))