联合主键和复合主键

联合主键和复合主键

联合主键

联合主键其实就是中间表。在多对多模型里,需要两个表中的主键组成联合主键,这样就可以查到两个表中的每个数据。

# 创建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)
)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值