gpt4 book ai didi

database-design - 还款管理的数据库模式设计

转载 作者:行者123 更新时间:2023-12-01 04:10:25 24 4
gpt4 key购买 nike

我们有一个用于跟踪贷款定期付款的网络应用程序,目前我们在 mysql 数据库中管理它,如下所示:
loan_payments包含以下列的表格[ id, customerId, installmentNo, installmentAmount, penalty, previousOutstanding, totalReceivable, amountReceived ]receipts包含以下列的表格[ id, loan_payments.id (FK), paymentAmount, otherPaymentDetails]
代码流程如下:

  • 在创建新贷款期间, nr分期付款loan_payments 中输入行该客户的表。假设所有客户都有固定的 10 次分期付款,则将创建 10 行
  • 对于第一行 ( installmentNo = 1 ), penaltypreviousOutstanding将设置为 0。
  • 每当收到新的付款时,amountReceived 中增加该数量当前 分期付款 ( installmentNo = 1) 并在 payments 中完成一个条目 table 。 *在任何给定时间只有一个当前分期付款*
  • 当下一期( installmentNo = 2)时,上一期的 [ totalReceivable - amountReceived ]插入下一部分的 (installmentNo = 2) previousOutstanding .所有以前的付款/分期付款都被卡住。并向客户发送提示,installmentAmount , penaltypreviousOutstanding要支付。
  • 现在所有付款都将收到此 当前 分期付款 (installmentNo = 2) 和它的收到的金额将在收到新付款时增加。
  • 所有惩罚计算都将针对 进行。当前 分期付款。

  • 目前,我们不提供不属于 的任何付款的更新/删除。当前 分期付款。

    一切正常,直到客户要求更新/删除以前付款的功能。以下是我们将面临的问题,如果我们允许更新/删除以前的付款
  • 假设 当前 分期号为5,如果用户更新为2号分期付款,所有计算previousOutstandingpenalty会出错。这是没有意义的,因为已经向客户发送了提示。
  • 目前有很多报告使用 previousOutstandingpenalty列。

  • 我们的查询:
  • 收纳设计好不好previousOutstandingpenalty在数据库中?还是应该在代码中计算?
  • 我们如何重新设计逻辑/数据库以允许以下内容。
  • 以任何分期付款方式付款No
  • 允许更新/删除任何以前的付款
  • 灵活的惩罚计算。 (如果需要,从用户那里获取 %)
  • 能够免除特定客户对特定分期付款的罚款。
  • 如果可能,请报告显示针对特定客户的分期付款免除多少罚款。 (如果这个要求让设计变得复杂,我们可以放弃)
  • 最佳答案

    会计数据库应该易于审计,这意味着最好将其设置为仅附加而不编辑任何旧行。如果某些列包含预先计算的聚合,请通过删除它们进行非规范化,并将它们放在 View 中,以便您的报告仍然有效。您使用聚合值的快照发送的邮件应存储在另一个仅附加表中,并且由于您将它们定义为快照,因此它们不会变得不准确。

    关于database-design - 还款管理的数据库模式设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478843/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com