我理解我的问题的明显答案是:“这取决于”。有了这个,我希望你们中的一个(或更多)能帮助我看到解决这个问题的常用方法......
我正在设计一个待售小部件数据库。随着时间的推移,每个项目的价格将不可避免地发生变化。我的问题是我们应该跟踪这些变化吗?如果是,那该怎么办?相关的定价表&日期?跟踪价格变化是否常见,因此您可以回顾3年后的情况,看看发生了什么变化以及何时变化。我可以看到这有什么价值,但值得开销吗?
订单表将捕获销售日期的当前价格。
想法?
谢谢!
答案 0 :(得分:1)
你的直觉是正确的。如果你能提供帮助,不要丢失信息!
使用SQL Server语法创建一个名为this的表:
CREATE TABLE PriceHistory (
PK_PriceHistory int IDENTITY(1,1) PRIMARY KEY,
FK_Item int, -- foreign key to your item table
Price money,
ChangedAt datetime -- captured at the time of change
)
您可以从Price(或Item?)表格的触发器填充表格,以便在价格更改后,您可以自动将旧价格记录到价格历史记录表中。这将允许您查询价格历史表以确定历史价格(如果需要)。我不是触发器的粉丝,但这是一个经典案例......
答案 1 :(得分:0)
添加Tahbaza的回答:
重要的不仅在于跟踪历史价格,还在于缓解未来的价格变化。如果没有“更改为”,或者在这种情况下实际上是“有效期”日期与价格一致,您将始终必须在应用它们的确切日期更改数据库中的价格。从有效期开始,您可以在适当的时候输入新价格,并在指定的日期成为“当前”价格。