首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个支付系统的数据库设计

一个支付系统的数据库设计
EN

Stack Overflow用户
提问于 2018-11-14 05:35:22
回答 1查看 3.8K关注 0票数 3

我有四张桌子如下:

费用

代码语言:javascript
复制
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

支付

代码语言:javascript
复制
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

代码语言:javascript
复制
id  name   display
------------------
1   ONLINE Y
2   CASH   Y
3   DRAFT  Y
4   CHECK  Y

PAYMENT_STATUS

代码语言:javascript
复制
id  status  display
-------------------
1   PAID    Y
2   UNPAID  Y

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

我有几个问题:

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

回答 1

Stack Overflow用户

发布于 2018-11-16 06:05:03

问:(在这种情况下)是否可以为所有支付模式提供一个付款表,还是有更好的选择?

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

费用可以是经常性的(每个月支付,直到它的循环状态完成)。我如何处理这些付款?

您应该有另一个表,用于将定期支付记录维护为订阅表,并且在记录的每个重复支付事件中,在支付表中插入新的条目。因此,一个订阅记录将涉及多个付款条目。

问:我是否需要存储每个付款回复(如果在线支付),无论是成功,失败或其他什么。如果是,我是否应该在文件中使用单独的表或存储?

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53293775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档