处理数据库支付交易的最佳方式是什么?
这是我想出的:
订单表
- OrderID(主键)**
- 成员(member)ID(FK)
- 总订单
- 状态(待处理、处理中 完成)
- 付费 (0, 1)
付款表
- PaymentID(主键)
- OrderID(与Orders表相关)
- 日期
- 交易状态
例如,如果 Payments 表中有两笔来自 OrderID-123 的付款交易。
一个是下降,一个是成功
如果有一行Sucesss,那么Orders.Paid就会变成1
或者什么是更好的解决方案?
最佳答案
根据我的经验,衰落和成功是不够的。在丰富多彩的用例中,您可能会经历成功的付款等待清算资金(例如电子支票)、退款(由您进行)、撤销(由客户/API 提供商进行)、部分退款/撤销(例如狗的玩具但不是他的食物,在同一个订单中),撤销退款/撤销。
更不用说订阅固有的各种其他情况,例如订阅升级和降级、订阅更改、取消、取消取消、锁定等等。
不用说,如果您需要处理附属付款、无用户发票、不同的账单/运输联系人、经销商等,问题会变得更加棘手。
显然,准确的答案取决于您的具体要求,但我发现您几乎总是从满足 T-ledger 会计严格要求的模型开始(即带有会计科目表的借方/贷方) ),然后逐步开发您的特定产品。
关于mysql - 支付交易和订单表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979999/