公告

👇 QQ 👇 --- 👇 赞赏 👇


Skip to content

MySQL | 数据库设计三范式

更新: 6/1/2025 字数: 0 字 时长: 0 分钟

MySQL安装教程


什么是数据库设计三范式

数据库表设计的原则。教你怎么设计数据库表有效,并且节省空间

三范式

  1. 第一范式:任何一张表都应该有主键每个字段是原子性的不能再分
    1. 以下表的设计不符合第一范式:无主键,并且联系方式可拆分。

第一范式-无主键-可拆分

  1. 应该这样设计:

第一范式-有主键-不可拆分

  1. 第二范式:建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键不能产生部分依赖
    1. 以下表存储了学生和老师的信息

复合主键-导致数据冗余

虽然符合第一范式,但是违背了第二范式,学生姓名、老师姓名都产生了部分依赖。导致数据冗余

  1. 以下这种设计方式就是符合第二范式的:

分表连接查询-解决数据冗余

  1. 第三范式:建立在第二范式基础上的,非主键字段不能传递依赖于主键字段
    1. 以下设计方式就是违背第三范式的

非主键字段-传递依赖于主键

以上因为产生了传递依赖,导致班级名称冗余

  1. 以下这种方式就是符合第三范式的:

分表连接查询-解决传递依赖主键

一对多怎么设计

口诀:一对多两张表,多的表加外键

一对多设计-一

一对多设计-多

多对多怎么设计

口诀:多对多三张表关系表添加外键

多对多设计-关系表添加外键

一对一怎么设计

两种方案:

  1. 第一种:主键共享

主键共享

  1. 第二种:外键唯一

外键唯一

最终的设计

最终以满足客户需求为原则,有的时候会拿空间换速度

贡献者

The avatar of contributor named as XingJi-love XingJi-love

页面历史