关于订单明细表增加old_id字段的疑问

来源:6-9 如何避免偷换交易中的商品信息?

黑马非马1013

2019-12-31

当客户购买商品A的时候商品B的时候,订单明细中应该记录的是当时sku的id=1000,那么在订单完成以后,如果商家更新了sku信息,则sku_old增加了id为1且sku_id=1000的记录,那么订单明细表中old_id数据需要登记1这个id吗?如果订单千万级别或者亿级,效率会很低吧,如果不刷新订单明细表,理论上订单明细表中应该始终sku_id有值,old_id为空吧,请问实际应用中是怎么解决的呢?

写回答

1回答

神思者

2020-01-01

因为SKU记录修改之后,原来的数据会保存在old表里面,所以我们要在订单表的old_id记录下old表中SKU的id,这样我们表连接的时候就让订单表和old表做连接。如果我们不标记订单的old_id,那么表连接,订单表要联合sku表和sku_old表查询数据,效率也并不高。所以两种办法都没法提升效率。所以电商系统,一般要限制卖家修改商品记录。还有一种解决办法就是把商品SKU信息保存到订单明细表里面,这样商家怎么修改商品都不会影响到订单,不过缺点是,订单越多,占用的存储空间要比以前大多了

1
1
黑马非马1013
非常感谢!
2020-01-02
共1条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程