【问题标题】:Database/Schema design question regarding updates to items_for_sale over time关于 items_for_sale 随时间更新的数据库/架构设计问题
【发布时间】:2011-03-14 03:17:28
【问题描述】:

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

我正在设计一个出售小部件的数据库。随着时间的推移,每件商品的价格将不可避免地发生变化。我的问题是我们是否应该跟踪这些变化,如果是,如何跟踪?相关的定价和日期表?跟踪价格变化是否很常见,这样你就可以回顾 3 年后的情况,看看发生了什么变化以及何时发生变化。我可以看到这可能很有价值,但是否值得开销?

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

想法?

谢谢!

【问题讨论】:

    标签: database database-design schema


    【解决方案1】:

    你的直觉是正确的。如果您能提供帮助,请不要丢失信息!

    使用 SQL Server 语法创建一个类似这样的表:

    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
    )
    

    您可以从价格(或商品?)表上的触发器填充该表,以便在价格更改时自动将旧价格记录到价格历史表中。这将允许您查询价格历史表以确定历史价格(如果需要)。我不喜欢触发器,但这是一个经典案例......

    【讨论】:

      【解决方案2】:

      添加到 Tahbaza 的答案:

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

      【讨论】:

        猜你喜欢
        • 2013-04-07
        • 2015-08-29
        • 2011-10-26
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        • 1970-01-01
        • 2011-08-06
        相关资源
        最近更新 更多