通常做电商类系统都会遇到类似的问题,为了便于理解,下面通过一个小故事来梳理一下:
小明在平台开了一家店,发布了一件商品(一双女鞋),小芳在浏览店铺时看见了这双鞋子,立马下单购买了,这时就会产生一条订单,它至少包含下面几大要素:

一天后小明觉得女鞋不好卖,他想把店里的女鞋换成男鞋,于是他直接编辑了原来的女鞋商品,图片/介绍/价格都做了调整。正好这个时候小芳登录平台想看看自己买的鞋子发货没有,结果小芳惊呆了,自己明明买的女鞋怎么变成了男鞋,她马上打电话给平台反映了此事,客服小美找到了技术部门的小猿并质问他为什么会这样, 小猿一脸懵逼,他想我在订单表里存了商品id,查看订单时通过商品id把商品详情带出来,这个逻辑没错啊,下面是小猿设计的表结构

这时产品经理小P听到了争执,在了解情况后,他觉得这个问题必须解决,否则平台以后会官司缠身,于是他拉上开发部的小伙伴们开始商量解决方案,技术部比较资深的大猿提出了下面几个方案:
方案一:在每条订单记录里使用json保存购买时商品的信息。这样小芳每次查看订单,看到的都是购买时的商品信息,小猿在查询订单时也不用关联商品表获取商品信息了。

电商平台上,商品信息的修改可能导致已下单用户的困扰。本文通过一个小故事,探讨了三种解决方案:1) 订单内保存商品json信息;2) 创建商品历史版本记录;3) 通过订单拉动商品版本更新。每种方案都有其优缺点,如数据一致性、存储效率和数据结构变化等问题。最终,历史商品表方案被采纳,以确保订单与商品信息的一致性,并平衡了数据管理和业务需求。
最低0.47元/天 解锁文章
10万+

被折叠的 条评论
为什么被折叠?



