库存归还的表单设计疑惑

来源:33-3 proto接口设计

0沉默使者0

2023-05-14

老师,您在这节课说了如果不多建一个包含订单、用户的那个表单(附在最后),那么如果在订单、商品之外多来几个新服务,只要有订单号就可以调库存服务的接口,然后您说这是由于库存服务保存了订单和相关商品的信息。这里我就很不理解了,即使多建那个表单(下面这个),它同样把订单号、扣减商品(归还商品)的信息保存到了库存服务的数据库,这同样解决不了新服务随意调用库存服务的风险啊,请问您说这个问题是想表明库存服务必然存在保存订单和相关扣减商品数量信息的风险吗?
class InventoryHistory(BaseModel):
user = IntegerField(verbose_name=“用户id”,unique=True)
goods = IntegerField(verbose_name=“商品id”, unique=True)
nums = IntegerField(verbose_name=“数量”, unique=True)
order = IntegerField(verbose_name=“订单id”, unique=True)
status = IntegerField(choices=((1, “未出库”), (2, “已出库”)), default=1, verbose_name=“出库状态”)

写回答

1回答

bobby

2023-05-19

这个表的目的是为了解决 库存回滚, 库存扣减幂等性问题的,比如某个订单由于网络问题重复被发送了两次库存扣减 就能防止同一个订单库存重复扣减了

0
0

Go+Python打造电商系统 自研微服务框架 抓紧高薪机遇

快速转型Go工程师,成为具备双语言后端能力的开发者

508 学习 · 530 问题

查看课程