Mysql范式设计原则介绍

1.第一范式

定义:数据表中每个字段的值必须具有原子性(不可以再次拆分)

错误示例:

用户ID、用户名、用户密码、用户信息这几个字段中,用户信息就不符合第一范式的设计原则。

2.第二范式

定义:在第一范式的基础中,确保数据表中除主键之外的每个字段都依赖主键

错误示例:

商品类别主键id(字段名)

商品类别名称(字段名)

商品名称(字段名)

商品价格(字段名)

上述蓝色字段不符合第二范式定义,商品名称和商品价格并不依赖于商品类别主键id。可以拆分成如下设计

正确示例:

表1:

商品类别主键id

商品类别名称

表2:

商品主键id

商品类别id

商品名称

商品价格

3.第三范式

定义:第三范式是在第二范式的基础上,确保数据表中的每一列都和主键字段直接相关,也就是说,要求数据表中的所有非主键字段不能依赖于其他非主键字段

4.反范式化

定义:数据库中数据量巨大,访问频次高,如果按照三大范式设计数据库表,会产生大量关联查询。会影响数据库的读性能。采用反范式化给数据库表增加冗余字段来解决这个问题。

相关推荐
听封7 分钟前
✨ 索引有哪些缺点以及具体有哪些索引类型
数据库·mysql
利瑞华12 分钟前
数据库索引:缺点与类型全解析
数据库·oracle
V+zmm1013415 分钟前
自驾游拼团小程序的设计与实现(ssm论文源码调试讲解)
java·数据库·微信小程序·小程序·毕业设计
ChinaRainbowSea27 分钟前
1. Linux下 MySQL 的详细安装与使用
linux·数据库·sql·mysql·adb
致奋斗的我们1 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
jay丿2 小时前
Redis 中列表(List)常见命令详解
数据库·redis·list
小林熬夜学编程2 小时前
【MySQL】第八弹---全面解析数据库表的增删改查操作:从创建到检索、排序与分页
linux·开发语言·数据库·mysql·算法
风月歌2 小时前
基于springboot校园健康系统的设计与实现(源码+文档)
java·spring boot·后端·mysql·毕业设计·mybatis·源码
MYF_123 小时前
window安装MySQL5.7
mysql
RainbowSea3 小时前
4. MySQL 逻辑架构说明
数据库·sql·mysql