数据库三范式

数据库的设计要遵从三范式的原则。

第一范式

1、每一列属性都是不可再分的属性值,确保每一列的原子性。

2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

个人理解就是原子性。如果说每一列的属性都是一块砖的话,那么不能在一列里面放两块砖,尽量的把两个半截砖头拼成一块放在一列,拼不成的就不勉强了。

第二范式

1、每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。

个人理解就是专业性。一块砖头只做一件事,既要做承重又要做外墙装饰,那就必须要更多的砖头。

第三范式

3、 数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。

举个简单的列子,一个表中有员工姓名、公司名称和公司地址。这就是一个典型的传递关系:员工姓名>公司名称>公司地址。这样的表不符合第三范式,需要改成两张表,第一张表(员工姓名+公司名称),第二张表(公司名称+公司地址)。

其他问题

三大范式只是一般设计数据库的基本理念,并不是数据库必须这么设计。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。根据要建的房子选择砖头,而不是根据砖头建房子。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值