SQL 服务器数据库中客户的贷方借方和余额
Credit debit and balance of a customer in a SQL Server database
我正在 Java 开发销售点系统,而我使用的后端是 SQL 服务器数据库。因为我是数据库的新手,所以混淆了我正在写数据库。
永远的销售我正在开发票,table设计就是这样
Invoice
table 有列 InvoiceID
、InvoiceDate
、CutomerID
、MethodOfPayment
、Comments
Line Item
table 有列 InvoiceID
、LineitemNo
、ProductID
、QTY
、Price
Transaction
table 有列 TransactionID
、InvoiceID
、Debit
、Credit
、Balance
, InvoiceStatus
步行的顾客都是现金顾客,所以我对他们没有意见。 InvoiceStatus
标志将靠近他们,因为他们没有付款。
对于其他客户,他们也会 material 赊账。
我需要以非常有效的方式保存信用借记和余额历史记录。
我的问题是,对于每个客户,我是否需要单独的 table 来记录信用借记和余额历史记录或全部记录在一个 table,因为将来 table 大小如果我只用一个 table 会长得很大。
或者,如果有人有我现在正在使用的更好的数据库设计,那将非常有帮助。
建议为待处理的借记做一个单独的table,待处理的借记将是动态的,这意味着当发票完全收集时删除其记录。
您的发票 table 将照原样。
一些示例数据可能有助于我们更好地理解问题。
如果我试图从字里行间看出,你是在问,当客户付款时,你更新的每张发票都有一个记录是否更好,或者你是否为与一张发票,您可以根据需要对其进行汇总或操作。如果这是正确的,那么答案是 "it depends" 关于您的交易需要多细化。
根据我的经验,会计包应该尽可能地像 auditable。
我建议您的交易 table 每个 "transaction" 都有一个单独的记录,其中发票是交易,每笔付款是交易等。您可以为 "transaction_type".
你还说有一个 "table for each customer" 答案是否定的。
- 将有一个发票和行项目table来记录销售额。
- 会有收据-付款table来记录付款
- 将有客户 table 存储他们的余额(贷方或借方)
因此对于每笔交易(发票或付款),您将更新客户中的余额 table。
我正在 Java 开发销售点系统,而我使用的后端是 SQL 服务器数据库。因为我是数据库的新手,所以混淆了我正在写数据库。
永远的销售我正在开发票,table设计就是这样
Invoice
table 有列InvoiceID
、InvoiceDate
、CutomerID
、MethodOfPayment
、Comments
Line Item
table 有列InvoiceID
、LineitemNo
、ProductID
、QTY
、Price
Transaction
table 有列TransactionID
、InvoiceID
、Debit
、Credit
、Balance
,InvoiceStatus
步行的顾客都是现金顾客,所以我对他们没有意见。 InvoiceStatus
标志将靠近他们,因为他们没有付款。
对于其他客户,他们也会 material 赊账。
我需要以非常有效的方式保存信用借记和余额历史记录。
我的问题是,对于每个客户,我是否需要单独的 table 来记录信用借记和余额历史记录或全部记录在一个 table,因为将来 table 大小如果我只用一个 table 会长得很大。
或者,如果有人有我现在正在使用的更好的数据库设计,那将非常有帮助。
建议为待处理的借记做一个单独的table,待处理的借记将是动态的,这意味着当发票完全收集时删除其记录。 您的发票 table 将照原样。
一些示例数据可能有助于我们更好地理解问题。
如果我试图从字里行间看出,你是在问,当客户付款时,你更新的每张发票都有一个记录是否更好,或者你是否为与一张发票,您可以根据需要对其进行汇总或操作。如果这是正确的,那么答案是 "it depends" 关于您的交易需要多细化。
根据我的经验,会计包应该尽可能地像 auditable。
我建议您的交易 table 每个 "transaction" 都有一个单独的记录,其中发票是交易,每笔付款是交易等。您可以为 "transaction_type".
你还说有一个 "table for each customer" 答案是否定的。
- 将有一个发票和行项目table来记录销售额。
- 会有收据-付款table来记录付款
- 将有客户 table 存储他们的余额(贷方或借方)
因此对于每笔交易(发票或付款),您将更新客户中的余额 table。