k80*_*0sg 5 sql database database-design
我对数据库设计相当新,对于多对多的关系,创建复合键的差异和含义是什么,以及对于例如
Country 表
CountryID
CountryName
Language 表
LanguageID
LangugageName
多对多表 - 使用复合:
CountryID  Pkey
LanguageID Pkey
要么
使用唯一ID:
AutoID Pkey
CountryID 
LanguageID 
复合键:
复合键是多个列的组合,用于标识表中的唯一行。组合键可以是主键。
首要的关键
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
所以这完全取决于你的要求
在第一个设计中
Many to Many Table:
Using composite:
CountryID  Pkey
LanguageID Pkey
如果您使用此设计,则 CountryID 和 LanguageID 是复合主键。ie 在这里
表的数据将是
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
希望这个演示能帮助您理解差异