一尘不染

SQL Server +复合键或唯一ID

sql

我对数据库设计是相当陌生的,对于多对多关系而言,为例如创建复合键和唯一ID的区别和含义是什么?

Country 桌子

CountryID
CountryName

Language 桌子

LanguageID
LangugageName

多对多表格-使用复合:

CountryID  Pkey
LanguageID Pkey

或者

使用唯一ID:

AutoID Pkey
CountryID 
LanguageID

阅读 199

收藏
2021-05-23

共1个答案

一尘不染

组合键:

组合键是多个列的组合,以标识表中的唯一行。复合键可以是主键。

首要的关键

PRIMARY KEY约束唯一地标识数据库表中的每个记录。

所以这一切都取决于您的要求

第一个设计

Many to Many Table:
Using composite:
CountryID  Pkey
LanguageID Pkey

如果您使用此设计,则CountryID和LanguageID是复合主键。即此处

该表的数据将是

CountryId  LaguageID
  1           1 //valid
  1           2 //valid
  1           3 //valid
  1           1//not valid data as its form composite primary key

第二个设计中

Using Unique Id:
AutoID Pkey
CountryID 
LanguageID

AutoID成为主键,因此这将允许数据

AutoId    CountryId  LaguageID
 1          1           1 //valid
 2          1           2 //valid
 3          1           3 //valid
 4          1           1 //valid as AutoID is primary key
 1          2           3 // invalid as AutoID is prinary key

希望本演讲能帮助您理解差异

2021-05-23