Mysql范式设计原则介绍

1.第一范式

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

错误示例:

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

2.第二范式

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

错误示例:

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

商品类别名称(字段名)

商品名称(字段名)

商品价格(字段名)

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

正确示例:

表1:

商品类别主键id

商品类别名称

表2:

商品主键id

商品类别id

商品名称

商品价格

3.第三范式

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

4.反范式化

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

相关推荐
m0_702036531 分钟前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
qxwlcsdn8 分钟前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
phltxy20 分钟前
Redis 主从复制
java·数据库·redis
2301_8092445328 分钟前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
知识汲取者36 分钟前
巨量引擎营销 API 完整文档
开发语言·数据库·python
j7~2 小时前
【MYSQL】在Centos7和ubuntu22.04环境下安装
数据库·c++·mysql·ubuntu·centos
环流_2 小时前
redis:持久化rdb
java·数据库·redis
Donk_672 小时前
MariaDB 数据库管理手册
数据库·mariadb
阿洛学长2 小时前
PostgreSQL 超详细安装与使用教程:从入门到实战
数据库·postgresql
许彰午2 小时前
Oracle Redo日志与Undo回滚段损坏恢复实战
数据库·oracle