数据库设计三大范式

第一范式

确保每列保持原子性

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

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

第二范式

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

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

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

第三范式

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

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

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

相关推荐
追梦开发者12 小时前
MongoDB 踩坑实录②:数据建模和索引没搞对,查询慢了整整 10 倍
数据库·mongodb·database
KaMeidebaby12 小时前
卡梅德生物技术快报|单克隆抗体人源化 PEG 修饰质控方法体系构建与验证
服务器·前端·数据库·人工智能·算法·百度·新浪微博
2401_8246976612 小时前
mysql添加索引导致插入变慢怎么办_索引优化与异步处理方案
jvm·数据库·python
2401_8246976612 小时前
Go语言如何写负载均衡器_Go语言负载均衡器实战教程【完整】
jvm·数据库·python
m0_7335654612 小时前
CSS如何快速微调项目的间距大小_使用CSS变量批量修改值
jvm·数据库·python
Languorous.12 小时前
MySQL聚合查询:COUNT、SUM、AVG用法,实战案例演示
android·数据库
woxihuan12345612 小时前
如何为禁用按钮添加点击提示信息
jvm·数据库·python
ㄟ留恋さ寂寞12 小时前
Golang怎么限制请求Body大小_Golang如何防止客户端发送过大的请求体【避坑】
jvm·数据库·python
老纪13 小时前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python
会编程的土豆13 小时前
Go ini 配置加载:`ini.MapTo` 详细解析
开发语言·数据库·golang