在SQL中存储数千个数字的最佳方法?

时间:2017-04-02 15:04:03

标签: sql sql-server

我有大约250种产品,它们都有52周的历史和52周的预测。我需要将这些数字存储在SQL中,但无法找出最佳方法。我以前只使用过几次数据库,所以我的知识非常有限......

我考虑过使用纯文本和读/写分隔符。但它在很多方面感觉很糟糕,并使整个数据库变得毫无用处。

然后我想在桌子上添加52列,但我读到这是一个坏主意。

所以现在我回到了我开始的地方,它只是一张带有

的桌子
[ID] [WEEK_NUMBERS] [HISTORY_NUMBERS] [FORECAST_NUMBERS]

这是最好的方法吗?

~25000-30000行不是问题吗?

1 个答案:

答案 0 :(得分:2)

你会使用这样的表:

create table ProductHistory (
    ProductHistoryId int identity primary key,
    ProductId int not null references Products(ProductId),
    Type varchar(255) not null,
    Week date not null,    -- storing this as a date is a guess
    Number decimal(38, 10), -- should probably be decimal, but the scale and precision might be overkill,
    constraint chk_ProductHistory_type (type in ('Forecast', 'Actual')
);

这是一个例子。目前还不清楚:

  • 每行应该有一个用于预测和实际的列,还是应该在不同的行上?
  • 如何存储week
  • Number的正确类型是什么?

但这个想法是一样的。 。 。每个产品/周组合至少一行。