聯合主鍵和復合主鍵區別


什么是數據表的復合主鍵
所謂的復合主鍵 就是指你表的主鍵含有一個以上的字段組成
比如
create table test
(
   name varchar(19),
   id number,
   value varchar(10),
   primary key (name,id)
)

上面的name和id字段組合起來就是你test表的復合主鍵
它的出現是因為你的name字段可能會出現重名,所以要加上ID字段這樣就可以保證你記錄的唯一性
一般情況下,主鍵的字段長度和字段數目要越少越好

聯合主鍵
什么是聯合主鍵?
(主鍵原則上是唯一的,別被唯一值所困擾。)
顧名思義就是多個主鍵聯合形成一個主鍵組合
一個簡單的例子
主鍵A跟主鍵B組成聯合主鍵
主鍵A跟主鍵B的數據可以完全相同(困擾吧,沒關系),聯合就在於主鍵A跟主鍵B形成的聯合主鍵是唯一的。
下例主鍵A數據是1,主鍵B數據也是1,聯合主鍵其實是11,這個11是唯一值,絕對不充許再出現11這個唯一值。(這就是多對多關系)
主鍵A數據 主鍵B數據
1      1
2      2
3      3
主鍵A與主鍵B的聯合主鍵值最多也就是
11
12
13
21
22
23
31
32
33

 

CREATE TABLE `products_description` (
 

`products_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL default '1',
  `products_name` varchar(64) NOT NULL default '',
  `products_description` text,
  `products_short_description` text,
  `products_url` varchar(255) default NULL,
  `products_viewed` int(5) default '0',
  PRIMARY KEY  (`products_id`,`language_id`),
  KEY `products_name` (`products_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM