付款交易和订单表?

时间:2011-05-12 14:59:01

标签: mysql database-design payment

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

以下是我提出的建议:

订单表

  • OrderID(主键)**
  • 会员ID(FK)
  • 的OrderTotal
  • 状态(待定,处理 完成)
  • 付费(0,1)

付款表

  • PaymentID(主键)
  • OrderID(与订单表相关)
  • 日期
  • 交易状态

例如,如果Payments表中有两个来自OrderID-123的付款交易。

一个是拒绝,另一个是成功

如果有一行成功,则Orders.Paid将变为1

或者什么是更好的解决方案?

1 个答案:

答案 0 :(得分:4)

根据我的经验,衰落和成功是不够的。在丰富多彩的用例中,您可能会在清算资金(例如电子支票),退款(由您制作),撤销(由客户/ api提供商制作),部分退款/撤销(例如狗的玩具等)之前成功付款。不是他的食物,在同一个顺序内),逆转退款/逆转。

更不用说订阅所固有的其他各种情况,例如:订阅升级和降级,订阅更改,取消,取消取消,锁定,以及没有。

毋庸置疑,如果您需要处理联盟付款,无用户发票,不同的结算/运输联系人,转销商等问题,问题就会变得更加棘手。

明确地说,确切的答案取决于您的具体要求,但我发现从一个满足T-ledger会计严格性的模型(即带有会计科目表的借方/贷方)开始,您几乎总是更好),然后朝着你的特定产品努力。