发票表设计

| 我正在为客户创建发票表。有时他们将向我发送佣金,或者有时我向他们发送佣金(帐户余额)。在这种情况下如何设计发票表? 我想出了这个解决方案,我不确定这是正确的还是替代方法?
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,而不是\'Sent \',\'Cancelled \'等。 绝对保留发票金额。如果您需要考虑折扣,则此价格可能必须与tbl_order.total中的价格值不同。在任何情况下,数字数据存储起来都很便宜,如果您不必执行任何联接,则查询起来会更快。 给Payments表自己的ID列,并使其成为PK。 其余的看起来还可以。有一种情况,有两个表,一个用于付款,另一个用于付款。如果您真的只需要保留金额和日期信息,那么我认为您无需使其变得更加复杂。 谢谢, 克里斯。     
        您应该跟踪: amount_due amount_sent amount_received 这三个都很重要。并且在付款中,还跟踪了fee_paid。 最后,通常最好将T-分类帐会计(即借方/贷方)用于此类工作。如果您需要担心折扣,优惠券,退款,退款等,它可以使事情变得更加清洁。     

要回复问题请先登录注册