MySQL关联关系

关联关系
在开发中,需要根据实体的内容设计数据表,实体间会有各种关联关系,所以,根据实体设计的数据表之间,也存在着各种关联关系。
MySQL中,数据表的关联关系分为三种

一对一

一对一关系,在实际生活中比较常见
比如,人与身份证之间,就是一对一的关系,一个人对应一张身份证,一张身份证只能匹配一个人。

建立外键,首先,要分清主从关系,从表需要主表的存在才有意义,身份证需要人的存在,才有意义,因此,人为主表,身份证为从表,要在身份证中建立外键。

注意,这种方法关系在数据库中并不常见,因为,这种方式存储的信息通常会放在一个表中。
在实际开发中,一对一关联关系,可以应用于以下几个方面
1、分割具有很多列的表
2、由于安全原因,而隔离表的一部分
3、保存临时的数据,并且,可以毫不费力的通过删除该表,而删除这些数据

多对一

多对一是数据表中,最常见的一种关系
比如,员工和部门之间的关系,一个部门可以有多个员工,但是,一个员工从属于一个部门,部门表中的一行在员工表中,可以有许多匹配行,但是,员工表中的一行,在部门表中只能有一个匹配行。

建立外键,在多对一的表关系中,应该将外键建在多的一方,否则,会造成数据冗余。

多对多

多对多也是数据表中的一种关系
比如,学生与课程之间的关系,一个学生可以选择多门课程,一门课程可以供多个学生选择,学生表中的一行,在课程表中可以有许多匹配行,课程表中的一行,在学生表中也有许多匹配行

通常情况下,实现这种关系,需要定义一张中间表,称为连接表,该表会存在两个外键,分别参考课程表和学生表
注意,连接表中的两个外键是可以重复的,但是,这两个外键之间的关系,是不能重复的,所以,这两个外键又是连接表的联合主键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值