注册 登录
编程论坛 SQL Server论坛

关于选取主键约束

小人物一个 发布于 2008-10-05 00:08, 1033 次点击
为存贮不同出版商出版的书的材料,用CREATE TABLE 语句创建以下表。.
 
CREATE TABLE Books
(  
cBookId char(4) not null,
cPublisherId char(6) not null,
cBookName char(30) not null,
iBookPrice int not null
)
 
CREATE TABLE Publisher
(
cPublisherId char(6) not null,
cPublisherName char(30) not null,
cPublisherAddress char(40) not null,
cPublisherCity char(35) not null,
cPublisherState char(40) not null,
cPublisherPhone char(15) not null
)
 
识别有助于维护Books 和 Publisher 表之间的完整性的正确步骤。

1.创建Publisher 表的cPublisherId 属性的主键约束,和Books 表的cPublisherId 属性的外键约束。
2.创建Books 表的cPublisherId 属性的主键约束,和Publisher表的cPublisherId 属性的外键约。

请高手指导一下该选1还是2?原因是什么?先谢谢了!!
4 回复
#2
Wikor2008-10-05 00:21
选1.创建Publisher 表的cPublisherId 属性的主键约束,和Books 表的cPublisherId 属性的外键约束。

Books 表里的cPublisherId 受Publisher表约束

2中的Books 表的cPublisherId 属性的主键约束,不同书是可以同出版社的,不是唯一,再说也不是books的主键列,cPublisherId 应该是Publisher表的主键列
#3
小人物一个2008-10-05 00:39
谢谢了!讲得很清楚~谢谢
#4
球球2008-10-05 08:14
首先想到主外键是一对多的关系,一是主键,因为主键必须是唯一的,而多就是外键喽。
#5
小人物一个2008-10-05 13:16
恩,谢谢版主
1