Mysql范式设计原则介绍

1.第一范式

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

错误示例:

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

2.第二范式

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

错误示例:

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

商品类别名称(字段名)

商品名称(字段名)

商品价格(字段名)

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

正确示例:

表1:

商品类别主键id

商品类别名称

表2:

商品主键id

商品类别id

商品名称

商品价格

3.第三范式

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

4.反范式化

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

相关推荐
百度Geek说21 分钟前
BaikalDB 架构演进实录:打造融合向量化与 MPP 的 HTAP 查询引擎
数据库·分布式·架构
Xy91037 分钟前
App Trace技术解析:传参安装、一键拉起与快速安装
数据库·程序员
朝九晚五ฺ42 分钟前
【MySQL基础】MySQL表操作全面指南:从创建到管理的深度解析
数据库·sql
AIGC_北苏1 小时前
Ubuntu 安装 Mysql 数据库
数据库·mysql·ubuntu
15942315632 小时前
QT使用WxSQLite3打开加密数据库并查询
数据库·qt·sqlite
程序员阿超的博客2 小时前
【数据篇】持久化核心:整合 JPA/MyBatis 实现优雅的数据库操作
数据库·mybatis
一叶知秋哈4 小时前
Canal1.1.5监听Mysql数据变动发送消息给Rabbit MQ
mysql·rabbitmq
struggle20257 小时前
RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
数据库·typescript·neo4j
伤不起bb8 小时前
Redis 哨兵模式
数据库·redis·缓存