简单数据库表基本设计-----持续更新吧

三范式:满足高层次范式就满足低层次范式 

知乎说明文:https://www.zhihu.com/question/24696366

第一范式:符合1NF的关系中的每个属性都不可再分   
                  最基本的,所有字段在业务上不用拆分(基本建立表都是这样)
 

第二范式:2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖。

确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)/传递性依赖、当前确定未来不确定

名称解释:
假如当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码。主键

函数依赖:完全依赖、部分依赖、间接依赖

 

第三范式(3NF) 3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。

                需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关,比如本来是关联表和其他数据放在一张表里,而关联信息是可变的这样吧。

 

Boyce-Codd范式 BCNF
在3NF的基础上:
不允许出现有主键的一部分被主键另一部分或者其他部分决定

由此可见,符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。当然,在实际中,往往为了性能上或者应对扩展的需要,经常 做到2NF或者1NF,但是作为数据库设计人员,至少应该知道,3NF的要求是怎样的。

就这样吧,不扣名词解释了。

 

多对一:
在多对一的情况下则在“多”的一方那个表参照”一“的那个表,也就是说在”多“的那个表设计一个外键关联”一“的那个表。
一对一:
而一对一的这种情况,是随意的。
多对多:
多对多这种情况就比较复杂,显然无论哪一方保存另一方的id都不合适,这个时候就需要新建多一张表出来,用来保存两边的关系。

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值