关于mysql数据冗余,你是怎么想的?

猪小三
  • 17

mysql如何应对不断变更的需求?
我举个购买商品的例子:下单支付后,给用户发红包;那发红包的这个记录,你是单独存储一个表呢,还是存储到订单表?
订单列表要显示这个订单发了多少红包,并且还要能根据红包金额排序。

过了几天,产品说下单支付后,给用户发金币, 得记录发了多少金币,还得能按照金币排序,类似这种变化的产品需求,mysql该如何应对;

回复
阅读 2.2k
3 个回答

问题1
为了保证未来业务可扩展性,也可以称方便扩展的目的,当然是分表。遵循一种规则:同业务一张表,不同业务分开放。当分开后,对排序,汇总当然就很简单了。

问题2
数据就放那呗。还能怎么做?不行就备份下删除掉生产环境的。

应该分表存放,对于主表中频繁使用,或者需要排序的字段,我选择冗余到主表中

个人观点:

  1. 一般表只存放对应实体本身具备的属性字段,对应例子中,红包记录应该单独存储一个表
  2. 有时需要经常查询或者用于排序的字段可以考虑冗余,对应例子中,红包金额或许需要考虑在订单中冗余存储
  3. 例子中,一个订单对应多个红包记录,订单中关联红包记录主键的字段或许可以尝试使用字符类型,存储一组红包id。(不确定是否合适)

希望对你有所帮助,谢谢

你知道吗?

宣传栏