繁体   English   中英

发票表设计

[英]Invoice table design

我正在为客户创建发票表。 有时他们必须向我发送佣金,或者有时我向他们发送费用(账户余额)。 这种情况下如何设计发票表?

我想出了这个解决方案,我不确定这是否正确或替代方法是什么?

tbl_invoice
- invoice_id (PK)
- order_id (FK)
- invoice_date
- amount (copy the price from tbl_order.total table)
- status (Invoice Sent, Cancelled, Amount Received, Amount Sent)


tbl_Payments
 - invoice_id (FK)
 - amount_received (recieved commission fees from customer)
 - amount_sent (sent fees to customer)
 - date_received
 - date_sent

如果 tbl_invoice.amount 为 -30.00,则意味着客户会将费用寄给我。

如果 tbl_invoice.amount 是 30.00,那么我将向客户发送费用。

我需要 tbl_invoice.amount 字段吗?

如果你能重新设计我的桌子,那该有多好。

一些东西:

  1. 将发票状态规范化为其自己的查找表,然后在发票表中放置一个状态 ID,而不是“已发送”、“已取消”等。

  2. 一定要保留发票金额。 如果您需要考虑折扣,这可能必须与 tbl_order.total 中的价格值不同。 在任何情况下,数字数据的存储成本都很低,如果您不必进行任何连接,查询速度会更快。

  3. 为 Payments 表提供其自己的 ID 列并将其设为 PK。

  4. rest 看起来不错。 有两个表的情况,一个用于付款,另一个用于付款。 如果你真的只需要保留金额和日期信息,那么我认为你不需要让它变得更复杂。

谢谢,克里斯。

您应该跟踪:

  • 应付金额
  • 发送金额
  • 收到的金额

这三个都很重要。 在付款中,还要跟踪 fee_paid。

最后,通常最好使用 T-ledger 会计(即借方/贷方)来处理这类事情。 如果您需要担心折扣、优惠券、退款、退单等问题,它会让事情变得更加整洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM