mysql - 每月分期付款发票的数据库设计

标签 mysql sql sql-server database-design

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

11 个月前关闭。




Improve this question




这个问题是 StackOverflow 上已经回答的问题的扩展/扩展:Database Design for Invoices

但是,我想扩展这个想法并找出允许客户使用某种类型的分期付款(按月付款)系统支付发票的正确方法。

在回答的问题中,投票的答案使用了具有以下表格的数据库模式:

  • 订单表:用于草稿/挂单
  • 订单明细表:用于挂单的行项目
  • 发票表:用于表示最终(不可变)订单以及客户欠款金额。
  • 付款表:当客户付款时,总金额会显示在此处。
  • InvoicesPayments 表:这显示每笔付款应适用于特定发票的金额。需要此表是因为有时付款可能适用于多个发票。

  • (为了简化起见,并且因为这个问题的重点是表设计,所以我省略了触发器等细节)

    Simplified Database Schema

    我如何允许将发票分成每月分期付款?要求如下:
  • 在下订单时,客户将能够选择他们想要支付多少作为首付,然后支付 X 次每月分期付款,直到支付余额。
  • 现在我们可以忽略利率之类的东西。
  • 有时,客户会支付超过一个月的付款。例如,假设他们忘记支付一个月,而下个月他们在一次付款中支付了当月和上个月的费用。

  • 您可以提供的任何帮助/指导将不胜感激。谢谢!

    -- 下午更新 --

    在考虑了到目前为止的响应并自己进行了一些修补之后,您对拥有如下所示的架构有何看法:

    schema 2.0

    在上述提议的架构中,所有发票都将有一个 ScheduledPayments 记录。如果发票一次性到期(全额支付),它将在那里有一个记录。如果发票是分期付款的,则每笔付款(加上任何预付款)将有 X 条记录。

    然后,当进行支付时,一条记录被添加到支付表中,并且一个或多条记录被添加到关系表“ScheduledPaymentsPayments”中,该表将支付与发票和月度支付连接起来。

    你觉得这个解决方案怎么样?您是否预见到它有任何问题,或者您能提出任何可能更好的替代方案吗?

    最佳答案

    您可以在 Orders 表中添加 DownPaymentAmount、MonthlyPaymentAmount、NumberOfMonthlyPayments 的列,并且满足第一个要求。

    第三个要求看起来数据库已经可以用 InvoicesPayments 表处理它,逻辑在应用层处理。

    关于mysql - 每月分期付款发票的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135181/

    相关文章:

    mysql - 在 MySQL 和 PHP 中使用公共(public)字段合并两条记录并增加一个字段

    sql - 如何在Sql Server GROUP BY格式的日期中按日期排序?

    mysql - 两个表的sql命令怎么写?

    sql - 如何从SSIS 2005中的查找转换中获得“无匹配输出”?

    mysql - sql查询的建议和优化

    sql - 在 SQL Server 中将类别转换为列

    Mysql主数据库使用情况

    php - INSERT INTO 带有关键字命名列的错误语法

    sql - 从sql server获取windows用户登录名

    mysql - 从 MySQL 查询计算百分比