交付具有全部余额的单个月度发票的付款标准化表
Normalizing tables for payment on delivery of a single monthly invoice with entire balance due
我正在努力寻找正确的方法来设计 tables 的计费政策,客户可以在每次交付完成时为每次交付付款,或者他们可以收到每月发票全部余额到期。这是我已经拥有的一小部分...
我不确定去哪里...我应该为全额付款和月度报表创建一个 table 并将它们与发票关联起来 table...还是应该关联那些付款 table... 或者我到处都是....
这比你想象的要复杂得多。您还必须考虑部分付款、超额付款、账户付款、退款和其他现实世界的复杂情况。
解决这个问题的唯一方法实际上反映了现实世界的丑陋,是将个人费用视为一件事(您的交付),将摘要文件(每月 invoice/statement)视为另一件事,并且 payments/refunds 作为另一件事。
从那里您需要将这三个独立的事物与关系结合在一起。诱惑是直接将月度发票与付款结合起来,但那将是一个错误。至少,它会让你的生活变得更加复杂。
费用和发票之间的关系相对容易。如果您的客户收到月度发票,那么他们从那个月开始的所有包裹都指向该发票。这形成了从包裹到发票的多对一关系。
更复杂的部分是付款和收费之间的关系。为此,您需要一个新的 table Payment_Application
,它是费用(套餐)和付款之间的 many-to-many 交集。该路口实体还将具有为每个包裹支付的金额。这很重要,因为您可以在此处记录支付的金额是过多、过少还是正确的金额。
如果您想变得更复杂,您可以规范化付款信息,以便您拥有付款 header 和详细信息。这使您可以将有关您收到的付款的信息与有关您选择如何应用该付款的信息分开。
考虑以下因素:
这里有一张(可选)发票 header 和发票明细(包裹)以及付款 header 和(可选)付款明细,这可能涉及也可能不涉及发票明细。像这样的安排将涵盖当您需要跟踪货币兑换物品时发生的各种丑陋事情。
我正在努力寻找正确的方法来设计 tables 的计费政策,客户可以在每次交付完成时为每次交付付款,或者他们可以收到每月发票全部余额到期。这是我已经拥有的一小部分...
我不确定去哪里...我应该为全额付款和月度报表创建一个 table 并将它们与发票关联起来 table...还是应该关联那些付款 table... 或者我到处都是....
这比你想象的要复杂得多。您还必须考虑部分付款、超额付款、账户付款、退款和其他现实世界的复杂情况。
解决这个问题的唯一方法实际上反映了现实世界的丑陋,是将个人费用视为一件事(您的交付),将摘要文件(每月 invoice/statement)视为另一件事,并且 payments/refunds 作为另一件事。
从那里您需要将这三个独立的事物与关系结合在一起。诱惑是直接将月度发票与付款结合起来,但那将是一个错误。至少,它会让你的生活变得更加复杂。
费用和发票之间的关系相对容易。如果您的客户收到月度发票,那么他们从那个月开始的所有包裹都指向该发票。这形成了从包裹到发票的多对一关系。
更复杂的部分是付款和收费之间的关系。为此,您需要一个新的 table Payment_Application
,它是费用(套餐)和付款之间的 many-to-many 交集。该路口实体还将具有为每个包裹支付的金额。这很重要,因为您可以在此处记录支付的金额是过多、过少还是正确的金额。
如果您想变得更复杂,您可以规范化付款信息,以便您拥有付款 header 和详细信息。这使您可以将有关您收到的付款的信息与有关您选择如何应用该付款的信息分开。
考虑以下因素:
这里有一张(可选)发票 header 和发票明细(包裹)以及付款 header 和(可选)付款明细,这可能涉及也可能不涉及发票明细。像这样的安排将涵盖当您需要跟踪货币兑换物品时发生的各种丑陋事情。