数据库设计三大范式

第一范式

确保每列保持原子性

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

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

第二范式

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

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

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

第三范式

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

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

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

相关推荐
onebound_noah2 分钟前
1688商品获取全解析:API与爬虫双轨实战指南
大数据·数据库·爬虫
treacle田16 分钟前
达梦数据库-物理备份与还原-(DISQL联机全备+增量备份+归档进行不完全恢复或完全恢复-实践示例)-记录总结
数据库·达梦数据库物理备份还原恢复
许长安19 分钟前
Redis 渐进式 rehash:为什么要分批搬迁哈希表
数据库·redis·散列表
测试员周周25 分钟前
【Appium 系列】第09节-数据驱动测试 — YAML 数据 + parametrize
服务器·数据库·人工智能·python·测试工具·语言模型·appium
一块小土坷垃31 分钟前
# ArchiCAD 29.0.2(畅享版):专为建筑师打造的BIM高效建模工具
前端·数据库·macos·开源软件
中新传媒38 分钟前
德宸堂心理双师同诊
java·前端·数据库
yexuhgu38 分钟前
html如何修改备注
jvm·数据库·python
夕除39 分钟前
spring boot 5
数据库·spring boot·后端
m0_733565461 小时前
golang如何使用Wails开发桌面应用_golang Wails桌面应用开发步骤
jvm·数据库·python
huangliang07031 小时前
MySQL 中的 distinct 和 group by 哪个效率更高?
android·数据库·mysql