我正在开发一个用Java开发的销售点系统,对于后端我使用的是SQL Server数据库。因为我是数据库新手并且混淆了我在数据库中写作。
对于永远销售我制作发票,表设计就是那样
Invoice
表格包含InvoiceID
,InvoiceDate
,CutomerID
,MethodOfPayment
,Comments
Line Item
表格包含InvoiceID
,LineitemNo
,ProductID
,QTY
,Price
Transaction
表包含TransactionID
,InvoiceID
,Debit
,Credit
,Balance
,InvoiceStatus
<列/ p>
走路的顾客总是现金客户,所以我没有问题。 InvoiceStatus
标志将离他们很近,因为他们没有付款。
对于其他客户,他们也会获得信贷资料。
我需要以非常有效的方式保存信用卡借记和余额历史记录。
我的问题是,对于每个客户,我需要单独的表来记录信用卡借方和余额历史记录或全部在一个表中,因为将来如果我只使用一个表,表的大小将会变得非常大。
或者如果有人拥有我现在使用的更好的数据库设计,那将非常有帮助。
答案 0 :(得分:1)
建议为待处理的借方单独制作一个表,待处理的借方将是动态的,这意味着当发票收集完全删除其记录时。 并且您的发票表将作为其。
答案 1 :(得分:1)
一些示例数据可能会帮助我们更好地理解问题。
如果我尝试在两行之间进行阅读,那么您要问的是,为客户付款时更新的每张发票都有一条记录,或者是否有与发票相关的每笔付款的单独记录然后你可以根据自己的意愿求和或操纵。如果这是正确的那么答案是&#34;它取决于&#34;您的交易需要多少。
根据我的经验,会计软件包应尽可能可审计。
我建议您的交易表为每个&#34;交易提供单独的记录&#34;如果发票是交易,每笔付款都是交易等,您可以在&#34; transaction_type&#34;。
你也谈到为每个顾客提供一张桌子&#34;答案是否定的。
答案 2 :(得分:0)
因此,对于每笔交易(发票或付款),您都将更新客户表中的余额。