gpt4 book ai didi

database-design - 网上商店实现 : Status for Orders?

转载 作者:行者123 更新时间:2023-12-04 14:01:11 25 4
gpt4 key购买 nike

大家好,我的程序员同事们,

我正在从头开始设计和编程一家在线商店。它有一个模块来管理通过前端收到的“订单”。

我需要一个状态来了解订单在特定时刻发生了什么,假设状态是:

  • 待付款
  • 已确认 - 等待发货
  • 已发货
  • 取消

我的问题很简单,但对于决定商店设计非常重要,并且是:您将如何存储此状态:您会在 Orders 表中为它创建一个列还是只是“计算“每个订单的状态取决于每个订单是否已收到付款或是否已发货? (除了我假设的 is_cancelled 列)

模拟此类问题的最佳方法是什么?

PD:我什至希望将来可以配置这些状态购买使用相同软件的其他客户..

最佳答案

订单创建一个状态列

基本原理是,如果 Orders 可以与多个 PaymentsInvoices 相关联(取决于您的实现),那么一个状态订单与任何未决或已完成的付款有绝对关系,并且因此不能直接计算

订单 可以标记为已付款已完成 即使尚未收到付款。订单恰好表示:按计划发货给客户。它不应代表实际收入,而后者又是Payments域。

具体实现取决于您的工作流程;我之前将“已完成”订单视为付款的“替代品”,但它变得困惑。特别是当您进行促销事件或想要赠送库存并且必须考虑丢失的库存和没有收到的收入时。 欢迎来到会计 hell 。

当收到订单的付款时,您的业务逻辑应该决定是否调整订单状态。如果订单处于待处理状态,并且现在收到的付款总额加起来等于或大于订单值(value),则订单应标记为已付款,表明它已准备好发货。

总结:已完成的付款代表收入,而已完成的订单代表发货和/或库存变化。

关于database-design - 网上商店实现 : Status for Orders?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com