【问题标题】:database design for a payment system支付系统的数据库设计
【发布时间】:2019-04-17 00:57:40
【问题描述】:

我有四个表如下:

费用

fees_id, interest, amount, total_amount, status_id, is_recurring  recurring_status  from_date   to_date      payment_id
    F001     1.50  1000    1015          1          N             NULL              2018-11-01  2018-11-01   1
    F002     2.00  2000    1020          1          Y             COMPLETE          2018-11-01  2018-11-20   2

付款

id, amount,  payment_date, txn_id, bnk_name, txn_status, pay_mode, dd_no, dd_date,   chk_no, chk_date
1   1015     2018-11-11    TXN0001 SBI       1           1         NULL   NULL       NULL    NULL
2   1020     2018-11-20    NULL    NULL      NULL        3         DNO001 2018-11-19 NULL    NULL

PAY_MODES

id  name   display
------------------
1   ONLINE Y
2   CASH   Y
3   DRAFT  Y
4   CHECK  Y

PAYMENT_STATUS

id  status  display
-------------------
1   PAID    Y
2   UNPAID  Y

可以通过四种支付方式中的任何一种方式支付费用。

我有几个问题:

  • 是否可以(在这种情况下)为所有支付模式使用一个支付表,或者有更好的选择吗?
  • 费用可以重复(每月支付,直到其重复状态完成)。我该如何处理这些付款?
  • 我是否需要存储每个支付响应(如果是在线支付),无论是成功、失败还是其他。如果是,我应该使用单独的表还是存储在文件中?

【问题讨论】:

    标签: logging database-design payment


    【解决方案1】:

    Que:是否可以(在这种情况下)为所有支付方式使用一张支付表,或者有更好的选择吗?

    是的,所有付款都应该在一个付款表中。这有助于 维护事务完整性约束。此外,它会有所帮助 为您将来生成各种报告时使用

    Que:费用可以重复(每月支付,直到其重复状态完成)。我该如何处理这些付款?

    您应该有另一个表来维护定期付款 记录为订阅表并在每次重复付款事件中 记录将新条目插入付款表。所以,一个订阅 记录将与多个付款条目相关。

    Que:我是否需要存储每个支付响应(如果是在线支付),无论是成功、失败还是其他。如果是,我应该使用单独的表还是存储在文件中?

    是的,您应该将付款响应存储在同一个付款表中 记录。这将帮助您进行故障转移检测以及 审计日志中的主要帮助。

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2011-12-02
      • 2012-02-12
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      相关资源
      最近更新 更多