mysql 数据表对应关系(一对一、一对多、多对多)

本文介绍了数据库中常见的三种表关系:一对一、一对多和多对多。一对一关系通常用于字段较多或特定情况下,可减少冗余和提高效率;一对多是最常见的关系,如班级与学生、角色与用户;多对多通过中间表实现,如老师、班级和科目的关联。合理设计表关系有助于优化数据库结构。
摘要由CSDN通过智能技术生成

数据表对应关系(一对一、一对多、多对多)
Ø 前言

本文主要介绍数据表的关联关系,这是数据库设计的常见问题之一。一个好的表结构设计,可以减少一些不必要的表或字段等。数据表之间的关联关系分为三种:一对一、一对多、多对多。下面就逐一介绍下:

  1. 一对一

Ø 一对一是将数据表“垂直切分”,其实是不常见,或不常用的。也就是 A 表的一条记录对应 B 表的一条记录,为什么要这样的设计呢,不是增加了程度的复杂性吗,然而并不一定,举例说明:

  1. 一个系统必然有 Employee(员工表)(包含字段:EmployeeId、姓名、性别、年龄、电话、地址等),每个员工都为一个用户,所以还有张 User 表(包含字段:UserId(关联 EmployeeId)、用户名、密码、角色等),这样你会发现,整合为一张表是否不太妥当?因为,User 的记录只会在登录时用到,感觉有点违背三大范式中的“确保每列都和主键列直接关联,而不是间接关联”。

  2. 还有种情况,这就要根据具体的业务来决定了。如果,当一张表的字段过于太多,而很多字段可能只有在某些情况下,才会使用到,这时也可以考虑使用一对一设计。

Ø 优点

  1. 便于管理、可提高一定的查询速度

  2. 减轻 CPU 的 IO 读写,提高存取效率。

  3. 符合数据库设计的三大范式。

  4. 符合关系性数据库的特性。

Ø 缺

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值