MySQL之数据库逻辑设计

1. 宽表模式

  • 定义:把一个对象的所有属性全存储在表中,如果对象属性越多,那么表的列就越多;

  • 宽表模式存在的问题:

     1. 数据冗余:表中每一行都存在相同的数据,增加对象占用的空间,如果对数据进行维护,就需要对每一行数据都要进行多次的维护;
     2. 更新异常:修改一行中某列的值时,同时修改了多行数据;
     3. 删除异常:删除某一数据时不得不删除另一数据;
     4. 插入异常:部分数据缺失主键信息而无法写入表中;
    

2. 宽表模式适用场景

  • 不需要关联其他数据的场景;

3. 数据库设计范式

  • 第一范式:表中的所有字段都是不可再分的,符合第一范式的表都是标准的二维表;
  • 第二范式:表中必须存在主键,并且表中其他非主键必须依赖于这个主键,如果使用的是组合主键,那必须要求表中的其他字段必须依赖这个组合主键,而不能依赖于组合主键的其中一部分,第二范式是在第一范式成立的基础上建立的,所以符合第二范式的表一定是一个标准的二维表;
  • 第三范式:表中的非主键字段之间不能互相依赖,非主键字段只能依赖于主键;

4. 反范式化设计

  • 表关联越多,查询性能越差;
  • 对于经常访问的数据,可以对范式化设计的表进行反范式化设计,对表中数据进行适度的冗余;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值