数据库设计三大范式

我们在建立数据库的时候,要遵循一定的规则。而这就涉及到了三大范式。

这里就不导入概念了,主要是加上我的理解。

  1. 第一范式:每个字段都不可再分,是最小的单位。

比如说一个字段是地址。而需要填入省份、市级、区级或县、详细地址。那么地址就不能作为一个字段而出现。因为它还需要细分成省份、市级、区级或县、详细地址四个部分。

举例:比如学校收集学生信息

学号

姓名

性别

年龄

地址

230228

小明

14

河北省保定市莲池区五四路

230311

小花

15

河北省衡水市武邑县翻斗花园

像上面那种就是不对的。地址还可以细分。

  1. 第二范式:每个字段都与主键相关(前提是满足第一范式)

注意是每个字段都和主键整体相关,而不是主键部分。为什么要说部分。因为这一般针对联合主键

所以在一张表中不可能保存多种数据。

比如要设计一个订单表。

订单编号

商品编号

商品名称

商品数量

商品价格

订单时间

2303011

12357

铅笔

200

5

20230301

2303011

12469

钢笔

300

13

20230301

2303012

12357

铅笔

100

5

20230228

看到上表可知,同一订单表中有多种数据,所以主键是订单编号和商品编号。是联合主键。

商品名称、商品数量、商品价格都和订单编号和商品编号相关。但是订单时间与订单编号相关,订单时间与商品编号不相关。

  1. 第三范式:每个字段都和主键直接相关,而不是间接相关。(前提是满足第一、第二范式)

比如在设计一个订单表时,可以将客户编号设置成一个外键与订单表建立关系,而不是在订单表中将客户的信息填写上去。

订单编号

订单项目

负责人

订单数量

订单总额

客户编号

12345

洗衣机

小涵

2

2200

3

12367

电脑

小虎

50

150000

7

客户编号

客户姓名

地址

联系方式

3

小天

翻斗花园1号楼323

146436346326

7

小张

强盛集团附属学校办公楼

465734632

这样做是为了减少数据的冗余。避免每次做一个订单时把客户信息再加载一遍。可以通过客户编号直接查询客户信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值