日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql复合主键优缺点_提问关于 mysql得联合主键和复合主键的问题

發布時間:2024/1/1 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql复合主键优缺点_提问关于 mysql得联合主键和复合主键的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題要是問外國開發者,TA們能一臉懵逼。

在英文語境中只有 Composite Primary Key(也有叫 Compound Primary Key 的),就是一個表中如果是多個字段組成一個主鍵,那么這個主鍵就被稱為這玩意兒。

至于這玩意兒你翻譯成“聯合主鍵”、“組合主鍵”、“混合主鍵”還是“復合主鍵”,都特么是一回事兒。

結果到了中文編程界,不知道是哪位神仙起的頭兒,非得編個“聯合主鍵”和“復合主鍵”的區別出來。再加上中文編程界有一大特點,就是博客或者問答習慣性東抄西搬,結果錯的知識也能流傳廣泛甚至成為“主流”。

搬一個“流傳最廣”的對于“聯合主鍵”和“復合主鍵”區別的文章:

“聯合主鍵”還是單一主鍵,只不過往往用在關聯表里,一個關聯表里會涉及到多個其他表的主鍵組合形成一條數據,你既可以為它們設置一個“復合主鍵”、也可以再新加一個自增列設為“聯合主鍵”。

舉例:

--- 學生表

CREATE TABLE `student` (

`student_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL,

PRIMARY KEY (`student_id`) USING BTREE

);

--- 科目表

CREATE TABLE `subject` (

`subject_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(20) NOT NULL,

PRIMARY KEY (`subject_id`) USING BTREE

);

--- 分數表,用所謂的“復合主鍵”

CREATE TABLE `score` (

`student_id` int(10) unsigned NOT NULL,

`subject_id` int(10) unsigned NOT NULL,

`value` int(10) unsigned NOT NULL,

PRIMARY KEY (`student_id`, `subject_id`) USING BTREE

);

--- 分數表,用所謂的“聯合主鍵”

CREATE TABLE `score` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`student_id` int(10) unsigned NOT NULL,

`subject_id` int(10) unsigned NOT NULL,

`value` int(10) unsigned NOT NULL,

PRIMARY KEY (`id`) USING BTREE,

UNIQUE INDEX `un`(`student_id`, `subject_id`) USING BTREE

);

寫在最后:

再次重申,這種概念是中文編程界(或者說是中文編程博客界)人為造出的。

上面的例子看看就得了,根本就是胡編一個 聯合主鍵 的定義出來,你會發現它其實就是一個最簡單的自增主鍵,只不過表的邏輯上 student_id + subject_id 是唯一的,id 就成了所謂的二者的 聯合主鍵。

總結

以上是生活随笔為你收集整理的mysql复合主键优缺点_提问关于 mysql得联合主键和复合主键的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。