数据库设计三大范式

第一范式

确保每列保持原子性

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

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

第二范式

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

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

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

第三范式

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

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

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

相关推荐
罗光记11 分钟前
腾讯混元游戏视觉生成平台正式发布2.0版本
数据库·经验分享·百度·facebook·开闭原则
我科绝伦(Huanhuan Zhou)20 分钟前
达梦数据守护集群监视器详解与应用指南
数据库
CoderYanger1 小时前
MySQL数据库——3.2.1 表的增删查改-查询部分(全列+指定列+去重)
java·开发语言·数据库·mysql·面试·职场和发展
PEI042 小时前
MVCC(多版本并发控制)
java·开发语言·数据库
码出财富2 小时前
事务管理的选择:为何 @Transactional 并非万能,TransactionTemplate 更值得信赖
数据库
ST.J2 小时前
SQL与数据库笔记
数据库·笔记·sql
jllws13 小时前
数据库原理及应用_数据库管理和保护_第5章数据库的安全性_理论部分
数据库
2302_809798324 小时前
【Redis】缓存的穿透、击穿和雪崩
数据库·redis·缓存
花哥码天下5 小时前
MySQL事务日志类型及作用解析
数据库·mysql