MySQL_表之间的关系

MySQL 专栏收录该内容
2 篇文章 0 订阅

概述

表与表之间的关系有三种:一对一、一对多(多对一)、多对多

一对一

例子:用户表(姓名,性别),资料表(住址),一名用户只能包含资料表中的一行数据,一对一的关系,也可直接理解成一张表

用户表(user)

在这里插入图片描述

资料表(info)

  • uid是info表的外键,即为user表的主键
    在这里插入图片描述
    1对1的关系表,可用将2个表合并成1个表进行存储

合成单表

在这里插入图片描述

一对多

列子:用户表(user),订单表(order),一个用户可以有多个订单数据

用户表(user)

使用1对1例子中的用户表

订单表(order)

  • uid:用户表中的id主键,在订单表称外键
    在这里插入图片描述

建表原则

为了保证数据的有效性和完整性,添加外键约束,在多表的一方添加外键约束

alter table 多表名称 add foreign key (外键名称) references 一表名称(主键);

多对多

多对多的关系表中,我们一般引入一张中间表,在中间表中存放两张表的主键,一般会将这两个主键设置成中间表的联合主键,将多对多拆分成两个一对多的关系,为了保证数据的有效性和完整性,在中间表上添加两个外键约束即可

alter table op add foreign key(oid) references orders(id);
alter table op add  foreign key (pid) references products(id);
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值