基本上,我的问题是 - 我有一个价格清单,其中一些是历史的(即我希望能够在3月11日搜索该产品X为0.99美元,4月1日为1.99美元等)。什么是存储这些信息的最佳方式?在MySQL表中存储历史价格表的最佳方式是什么?
我想我可能会有一个产品表,有一个外键到价格表。我最初认为存储当前价格可能是最好的选择,但我认为我希望能够存储历史价格数据,那么更好的途径是存储类似以下价格表的表格:
CREATE TABLE prices (
id BIGINT auto_increment not null,
primary key (id),
price DECIMAL(4,2) not null,
effectiveStartDate DATETIME NOT NULL,
effectiveEndDate DATETIME
);
我在这里有点亏了。我希望能够高效地搜索产品并查看产品价格随时间变化的情况。我如何有效地将一组这些价格与产品相关联?我想我所问的是'为了能够提供跨越特定日期的查询的高效搜索,将这个索引编制成最佳方式是什么?'
您是否真的想看到历史价格或知道订单时产品的价格。我看不到为什么我需要看到这部分是2008年的12美元,现在是17美元。 – HLGEM 2011-01-27 23:08:06
我会用product_id替换id,并考虑将主键设置为product_id,price和effectivestartdate。 – 2011-01-27 23:09:28