mysql 逆范式化_数据库设计三范式与逆范式

本文详细介绍了数据库设计中的三个基本范式:第一范式(NF1)、第二范式(NF2)和第三范式(NF3)。通过实例展示了如何从不满足范式的设计逐步转换为满足各范式要求的表结构,强调了每个范式的主要目标——原子性、消除部分依赖和消除传递依赖。此外,还讨论了逆范式的情况,即在某些情况下为了减少连接操作而适当合并字段。
摘要由CSDN通过智能技术生成

范式就是数据库表设计的规则, 这些规则也是口头协议!

这些都是说的, 你怎么设计都可以, 但是我们按这个范式来设计的表就是非常完美的

第一范式, 比第二范式简单, 第二范式比第三范式简单

第一范式不会满足第二范式, 第二范式不会满足第三范式

1. 第一范式, NF1, 字段的原子性

姓名

年龄

学科

教室

时间

张三峰

325

全栈

202

2017.4.18-2017.11.2

2. 第二范式, NF2, 消除部分依赖

不满足第二范式:

姓名

年龄

学科

教室

开始时间

结束时间

张三峰

325

全栈

202

2017.4.18

2017.11.2

消除它们的部份依赖

满足第二范式的设计:

ID

姓名

年龄

学科

教室

开始时间

结束时间

1

张三峰

325

全栈

202

2017.4.18

2017.11.2

这样就把字段的依赖,移动了ID上面。就是满足第二范式的要求!!

3.第三范式, NF3,消除传递依赖

不满足第三范式:

ID

姓名

年龄

学科

教室

开始时间

结束时间

1

张三峰

325

全栈

202

2017.4.18

2017.11.2

满足第三范式的设计:折表

ID

姓名

年龄

1

张三峰

325

ID

教室

1

202

ID

学科

开始时间

结束时间

1

全栈

2017.4.18

2017.11.2

再创建一个中间表, 把他们链接起来就可以了

第三范式就是把数据根据不同的类型进行了拆分, 非常的细致

4. 数据库设计逆范式

就是有的时候拆分的太细致了, 让连表产生了很多. 这个时间, 如果有一个字段经常被两个地方使用到, 我们就会把这个字段放在第二个表字段里面

ID

姓名

年龄

教室

1

张三峰

325

202

学科

教室

开始时间

结束时间

全栈

202

2017.4.18

2017.11.2

修改的内容的时候, 就会有多张表同时修改, 所以不要遗忘了任何一张表的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值