我正在为客户创建发票表。有时他们将不得不向我发送佣金,或者有时我将它们发送给我(账户余额)。在这种情况下如何设计发票表?
我想出了这个解决方案,我不确定这是正确的还是替代方法?
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字段吗?
如果您可以重新设计我的桌子,那应该很棒。
一些东西:
将发票状态标准化为自己的查找表,然后在发票表中放置一个状态ID,而不是“已发送”,“已取消”等。
绝对保留发票金额。如果您需要考虑折扣,则此价格可能必须与tbl_order.total中的价格值不同。在任何情况下,数字数据存储起来都很便宜,如果您不必执行任何联接,则查询起来会更快。
给Payments表自己的ID列,并使其成为PK。
其余的看起来还可以。有一种情况,有两个表,一个用于付款,另一个用于付款。如果您真的只需要保留金额和日期信息,那么我认为您无需使其变得更加复杂。
谢谢,克里斯。