mysql - 支付交易和订单表?

标签 mysql database-design payment

处理数据库支付交易的最佳方式是什么?

这是我想出的:

订单表

  • 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/

相关文章:

mysql - MySQL 两个结果集之间的差异

mysql - MyISAM 和触发器原子性

mysql - 内存消耗和正确的数据库设计

MySQL查找第一次没有购买的客户的交易(付款)

javascript - 是否可以并允许将自定义(自己的)PayPal 按钮与 Express Checkout 和 REST API 一起使用?

mysql - 如何将一个表中不匹配的行插入到另一个替代表中?

python - rawsql 相当于 django 查询集

database - 标准化表 6

database - 连接 3 个表的连接表?

java - 将当前选择的付款信息存储在客户类别中