一个合格的订单系统,最基本的要求是什么?数据不能错。
一个购物流程,从下单开始、支付、发货,直到收货,这么长的一个流程中,每一个环节,都少不了更新订单数据,每一次更新操作又需要同时更新好几张表。这些操作可能被随机分布到很多台服务器上执行,服务器有可能故障,网络有可能出问题。
在这么复杂的情况下,保证订单数据一笔都不能错,是不是很难?实际上,只要掌握了方法,其实并不难。
但是,还有一些情况下会引起数据错误。我们首先学习一下对于一个订单系统而言,它的核心功能和数据结构是怎样的。
先梳理一下一个订单系统必备的功能,它包含但远远不限于:
为了支撑这些必备功能,在数据库中,我们至少需要几张表。
由于用户点击、或者网络重试。可能会出现重复下单的情况,因此需要保证下单接口的幂等性。
解决办法: