只是想知道我要建模的以下数据的最佳设计模式是什么。
我有一个表,用于存储客户已下订单的信息。
订单可以开票或开票。
目前,该表存储有关总订单信息的数据(所以...开票+未结)。
即totalAmount
,totalCost
等...
必须在代码中计算已开票和未结信息,然后按行更新。从技术上讲,这些信息可以在计算后仅存在于应用程序的内存中。但是..我认为...存储很便宜,将这些数据存储在表中以供以后使用可能会很有用。
但是,我觉得这有点尴尬,可能会导致大排。
即我会有
totalAmount
,
totalCost
,
openAmount
,
openCost
,
invoicedAmount
,
invoicedCost
有没有更好的方法来做到这一点?
谢谢!
通常在销售系统中,销售订单和发票订单是两个相互关联的不同实体。这可能是标准化您所指的列的好方法。一般来说,最好对表进行规范化以减少数据冗余并提高查询效率,而不是非常宽的表。
通常,Orders 表(分别为 Sales 和 Invoices)通常本身分为两个表:1)OrderHeader 和 OrderLine(您可以根据需要更具体地命名它们)。Header 表存储一般信息,例如 SalesDate(或 InvoiceHeader 的 InvoicedDate)和客户信息。它也可以存储总数,但不是必需的。行表存储订单的每个项目的单独行以及该项目特定的信息。每行都有项目的单独成本(例如 SalesLine 的 SalesCost,InvoiceLine 的 InvoicedAmount)。