SQL数据库设计问题

时间:2011-07-04 21:23:57

标签: sql-server-2005 database-design

我有一项任务是设计一个SQL数据库,该数据库将记录公司商品的价值(sku数字)。该公司有7600个独特的产品需要跟踪,每个产品在一年中将有大约200个值(每个产品每天一个值,在一年的时间内)。

我的第一个猜测是sku数字从上到下(每个sku有一行),每个日期都是一列。

数据将用于以图表/图表格式查看,并将针对这些数据显示其他计算(例如百分比利润率等)

我的问题是:
- 这个布局是否可取? - 如果这种类型的数据可以追溯到大约15年(每个表格代表一年),我是否必须小心谨慎?

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

最好只有3列 - 而不是你建议的很多列:

sku    date         value
-------------------------
1      2011-01-01   10
1      2011-01-02   12
2      2011-01-01   5

这样,如果您想在每个日期记录有关给定产品的其他内容,则可以轻松添加其他列。

答案 1 :(得分:2)

我会为您的产品建议一个表格,并提供一个历史值表格。如果您打算选择特定时间段,可以根据日期创建历史值的索引。

create table products (
 id number primary key,
 sku number,
 name text,
 desc text);

create table values (
 id number primary key,
 product_id number,
 timestamp date,
 value number,
 foreign key fk_prod_price product_id on product.id);

create index idx_price on values.timestamp;

注意:不是实际的sql,你必须自己编写

答案 2 :(得分:1)

如果你喜欢@fiver写道,你也不必每年都有一张桌子。一张桌子里的所有东西。并在sku / date上添加索引以加快搜索速度