我有一项任务是设计一个SQL数据库,该数据库将记录公司商品的价值(sku数字)。该公司有7600个独特的产品需要跟踪,每个产品在一年中将有大约200个值(每个产品每天一个值,在一年的时间内)。
我的第一个猜测是sku数字从上到下(每个sku有一行),每个日期都是一列。
数据将用于以图表/图表格式查看,并将针对这些数据显示其他计算(例如百分比利润率等)
我的问题是:
- 这个布局是否可取?
- 如果这种类型的数据可以追溯到大约15年(每个表格代表一年),我是否必须小心谨慎?
有什么建议吗?
答案 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上添加索引以加快搜索速度