gulimall mysql数据库总结

gulimall mysql数据库总结

复杂表间关系分析

请添加图片描述

表间关系建立方案

数据库表间关系一般分为三种:一对一、一对多、多对多。

  1. 一对一:一般两表分别存储对方primary_key。

    如husband表中一条记录,对应wife一条记录,互相持有对方id

  2. 一对多:可以让多表储存一表的primary_key(主推),也可以另建一张关联关系表。

    如teacher表中1条记录对应student表中的10条记录,可以让10个student分别保存老师的id信息。也可以创建关联关系表

  3. 多对多:创建关联关系表,专门储存两者对应关系

    如class表中的一条记录对应student表中的多条记录,student表中的一条记录对应class表中的多条记录。

表内字段

请添加图片描述

一般一张数据表中主要有三类信息,信息均可选

  1. 基本信息字段:sku_name、sku_desc、sku_title等

    用于储存表中储存的业务信息,如sku表储存sku的具体内容

  2. 关联信息字段:spu_id

    用于与其他表建立关系

  3. 冗余字段:catalog_id、brand_id

    用于储存常用字段,尽量避免多表查询

数据库操作注意点

  1. 多表更新很少用外键,一般单独使用事务:单机使用传统事务,集群开启分布式事务,或使用可靠消息保证数据一致性。
  2. 多表联表查询,不要join,将一次join拆成多次select,避免casandra积问题。
  3. 若有其他表采用冗余数据的方式存储了信息,操作原表的时候,还要操作冗余表
  4. 当存储url等大字段的时候,建议拆成1对1的表单独存储。参考资料:https://www.cnblogs.com/chenpingzhao/p/6719258.html

Springboot操作数据库时注意事项

  1. 最好针对单表创建po、dao、service、controller

  2. 对于关联表A_B_relation,会经常涉及A和B的信息查询。

    如果查询多,更新少,建议存储冗余数据。如果查询少,更新多建议每次现查

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值