我必须对电子商务系统进行一些更改以添加一些额外的信息,并希望借此机会进行一些改进并使其更加灵活。当客户下订单时,我们必须为每个订购的商品存储几项信息;例如,产品价格、运费、征收的税款、所做的任何调整。
我正在争论这些字段是否应该离散存储,例如(简化示例):
ORDER_LINE_ITEM
OrderLineItemID
ProductID
Qty
Price
Shipping
Handling
SalesTax
Adjustment
例如,我可以计算客户支付的总价格:
SELECT Qty*(Price+Shipping+Handling+SalesTax) As TotalCollected FROM ORDER_LINE_ITEM
或者,如果我应该使用更间接的结构:
ORDER_LINE_ITEM
OrderLineItemID
ProductID
Qty
ORDER_LINE_ITEM_ENTRIES
OrderLineItemEntryID
OrderLineItemID
EntryType
Value
例如:
1 | 1 | Price | $10
2 | 1 | Shipping | $5
3 | 1 | Handling | $1
4 | 1 | SalesTax | $1
5 | 1 | Adjustment | -$3.50
这样做的好处是我可以稍后在不更改表模式的情况下存储其他信息。然而,检索信息和运行报告变得更加复杂和缓慢。
是否有将此信息存储在订单/发票数据库中的最佳做法?
提前致谢,
担