聯合主鍵和複合主鍵

聯合主鍵和複合主鍵

聯合主鍵

聯合主鍵其實就是中間表。在多對多模型裏,需要兩個表中的主鍵組成聯合主鍵,這樣就可以查到兩個表中的每個數據。

# 創建Team表
CREATE table Team (
	Id MEDIUMINT AUTO_INCREMENT COMMENT 'team 主鍵',
	NAME VARCHAR(10) COMMENT 'team name',
	PRIMARY KEY(Id)
)
ENGINE = INNODB,
CHARSET = UTF8;
# 創建Info表
CREATE table info (
	Id MEDIUMINT AUTO_INCREMENT COMMENT 'info 主鍵',
	Name VARCHAR(30) COMMENT '姓名',
	PRIMARY KEY(Id)
)
ENGINE = INNODB,
CHARSET = UTF8;

# 聯合主鍵 可以通過這張表查詢team和info兩個表的主鍵id 並查詢兩表的數據。
CREATE TABLE IF NOT EXISTS Team_info (
	id MEDIUMINT AUTO_INCREMENT COMMENT 'team_info 主鍵--聯合主鍵',
	info_id MEDIUMINT COMMENT 'info 主鍵',
	team_id MEDIUMINT COMMENT 'team 主鍵',
	PRIMARY KEY (id)
)
ENGINE=INNODB,
CHARSET=UTF8;

複合主鍵

複合主鍵相對好理解:假設 1班 有個叫張三的人,二班也有叫張三的人;如果此時通過name當主鍵 肯定會報錯,如果用班級+姓名做複合主鍵,也就沒有問題。(此案例不嚴謹,僅作思路)

CREATE TABLE Stu(
	Class Varchar(20) COMMENT '班級',
	NAME VARCHAR(10) COMMENT '姓名',
	PRIMARY KEY(Class,NAME)
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章