数据库设计三大范式

第一范式

确保每列保持原子性

即数据库表中的所有字段值都是不可分解的原子值

如果地址这个字段频繁访问, 则将地址这个属性重新划分为 省份 城市,详细地址等部分进行存储,这样才算是满足数据库的第一范式

第二范式

确保表中的每列都和主键相关

即数据库表中,一个表只能保存一种数据,不可以把多种数据保存在同一张表中。

比如订单信息表中。有商品名称,单位商品价格 就与订单表的主键不相关, 即违反了第二范式设计原则。因此需要将订单表中的商品信息分离到一张表中,把订单项目也分离到另一种表中。 就很完美 这样设计在很大程度上减小了数据库的冗余。

第三范式

确保每列都和主键列直接相关,而不是间接相关

比如一张订单数据表, 可以将客户编号作为外键和订单表建立相应的关系。而不可以在订单表中添加客户的其他信息。

这样在查询订单的时候,可以使用订单编号来引用客户信息表中的记录。也不必在订单信息表中多次输入客户信息的内容

相关推荐
少年攻城狮2 分钟前
OceanBase系列---【oracle模式的存在即更新,不存在即新增的merge into用法】
数据库·oracle·oceanbase
波波仔866 分钟前
clickhouse简介
数据库·clickhouse
不穿格子的程序员11 分钟前
Redis篇2——Redis深度剖析:从SetNX到Redisson,分布式锁的进化之路
数据库·redis·分布式锁·redisson·setnx·redlock
曾富贵16 分钟前
【Prisma】NestJS 集成与核心链路解析
数据库·后端
编程大师哥21 分钟前
SQL 调优 全面解析
数据库·sql·oracle
Dwzun22 分钟前
基于SpringBoot+Vue的农产品销售系统【附源码+文档+部署视频+讲解)
数据库·vue.js·spring boot·后端·毕业设计
IndulgeCui33 分钟前
【金仓数据库征文】KingbaseES-问题小记之min_wal_size outside
数据库
柯南二号41 分钟前
【后端】【Java】一文详解Spring Boot 统一日志与链路追踪实践
java·开发语言·数据库
2201_7578308741 分钟前
DQL查询语句
数据库
JIngJaneIL1 小时前
基于Java+ vueOA工程项目管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端