【MySQL数据库基础 五】数据库表间关系

本文详细介绍了数据库表间的一对一、一对多及多对多关系,并通过具体案例阐述了这些关系的应用场景,如学生选课系统的设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库表之间存在多种关系,例如一对一关系、一对多关系

一对一关系

有两个表,在第一个表中的某一行只与第二个表中的一行相关,同时第二个表中的某一行,也只与第一个表中的一行相关,我们称这两个表为一对一关系。一对一关系是比较少见的关系类型。但在某些情况下,还是会需要使用这种类型。

  • 情况一:一个表包含了太多的数据列(需要拆分成子表
  • 情况二:将数据分离到不同的表,划分不同的安全级别。(设定不同的安全级别)
  • 情况三:将常用数据列抽取出来组成一个表(常用的数据抽为一个表

也就是说我们需要的一对一关系通常在拆分表时操作

一对多关系

有多张表,第一个表中的行可以与第二个表中的一到多个行相关联,但是第二个表中的一行只能与第一个表中的一行相关联【lookup】。

一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆。 在车辆的表中加个外键字段(人的编号)即可。建两个表,一方不动,多方添加一个外键字段

  • 一对多关系是最常见的关系类型。

通常用于外键关联,lookup关联。

多对多关系

有两个表,第一个表的一行可以与第二个表中的一到多个行相关联,同时,第二个表中的一行可以与第一个表中的一到多个行相关联。

学生选课,一个学生可以选修多门课程,每门课程可供多个学生选择好的方式是实体和关系分离并单独建表,实体表为学生表和课程表,关系表为选修表,其中关系表采用联合主键的方式**(学生表主键,课程表主键组成)**建表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

存在morning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值