如何使用microsoft sql server为弱实体创建表?
弱实体包含一个部分键,它在ER图中用虚线表示。
我的问题是,如何为这个弱实体创建一个表,包括它的部分密钥。
答案 0 :(得分:2)
示例:
第一个实体:Book(BookId - PK, Titlle)
第二个实体(弱实体):Chapter(No, Title)
(此时Chapter.No
不是主键,因为一本或多本书可能包含相同No
的章节。< / p>
为了创建弱表,我会将BookId
添加到Chapter
表中,而且,我还会创建一个复合唯一键和一个简单的PK:
create table dbo.Chapter(
Id int identity primary key,
BookId int not null referenced dbo.Book(BookId),
No tinyint not null,
unique(BoolId, No),
Title nvarchar(100) not null
);
为dbo.Chapter
定义简单PK的原因是:
2)FK连接消除需要一个简单的FK。