我正在设计特许经营CRM(具有大量重构)的关系数据库的第二次主要迭代,我需要有关存储工作发票和发票行的最佳数据库设计实践的帮助,并对每个更改进行强有力的审计跟踪发票.
Invoices 表InvoiceId (int) // Primary key
JobId (int)
StatusId (tinyint) // Pending, Paid or Deleted
UserId (int) // auditing user
Reference (nvarchar(256)) // unique natural string key with invoice number
Date (datetime)
Comments (nvarchar(MAX))
Run Code Online (Sandbox Code Playgroud)
InvoiceLines 表LineId (int) // Primary key
InvoiceId (int) // related to Invoices above
Quantity (decimal(9,4))
Title (nvarchar(512))
Comment (nvarchar(512))
UnitPrice (smallmoney)
Run Code Online (Sandbox Code Playgroud)
InvoiceRevisions 表RevisionId (int) // Primary key
InvoiceId (int)
JobId (int)
StatusId (tinyint) // …Run Code Online (Sandbox Code Playgroud)