多表的创建及关系-多对多
多对多,在开发中我们一般引入一张中间表,在中间表中存放两张表的主键,一般还会将这两个主键设置成中间表的联合主键()。
例子: 商品和订单
--创建商品表
create table product(
id int primary key auto_increment,
name varchar(20),
price double
);
--创建中间表
create table orderitem(
oid int,
pid int
);
--增加外键约束
alter table orderitem add foreign key(oid) references orders(id);
alter table orderitem add foreign key(pid) references product(id);
在开发中处理多对多:
引入一张中间表,存放两张表的主键,一般会将这两个字段设置为联合主键,这样就可以将多对多的关系拆成两个一对多了。
为了保证数据的有效性和完整性
需要在中间表上增加两个外键约束即可。
图示:<