有关items_for_sale随时间更新的数据库/架构设计问题

时间:2010-07-10 00:28:12

标签: database database-design schema

我理解我的问题的明显答案是:“这取决于”。有了这个,我希望你们中的一个(或更多)能帮助我看到解决这个问题的常用方法......

我正在设计一个待售小部件数据库。随着时间的推移,每个项目的价格将不可避免地发生变化。我的问题是我们应该跟踪这些变化吗?如果是,那该怎么办?相关的定价表&日期?跟踪价格变化是否常见,因此您可以回顾3年后的情况,看看发生了什么变化以及何时变化。我可以看到这有什么价值,但值得开销吗?

订单表将捕获销售日期的当前价格。

想法?

谢谢!

2 个答案:

答案 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的回答:

重要的不仅在于跟踪历史价格,还在于缓解未来的价格变化。如果没有“更改为”,或者在这种情况下实际上是“有效期”日期与价格一致,您将始终必须在应用它们的确切日期更改数据库中的价格。从有效期开始,您可以在适当的时候输入新价格,并在指定的日期成为“当前”价格。