如何使用包含部分密钥的microsoft sql server为弱实体创建表?

时间:2014-02-04 05:32:48

标签: sql-server database-design entity-relationship database-schema

如何使用microsoft sql server为弱实体创建表?

弱实体包含一个部分键,它在ER图中用虚线表示。

我的问题是,如何为这个弱实体创建一个表,包括它的部分密钥。

1 个答案:

答案 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的原因是:

1)化合物PK可能迫使我定义化合物FK和

2)FK连接消除需要一个简单的FK。