基于多变量时间的数据的数据模型

时间:2017-03-12 04:57:53

标签: sql postgresql data-modeling

我有以下格式的多张数据。

  • 列是天(时间序列),随着时间的推移不断增加
  • 变量的行数在各个类别中保持不变
  • 类别1采用3个值,类别2采用2个值,因此每天有6种表单组合。

Existing data in excel sheets

我需要将这些数据捕获到数据库中。我正在寻求有关如何设置架构的帮助和建议。以下是一些注意事项。

  • 我打算对变量做很多计算,例如变量1 x变量10的趋势为Category1& 2个月的月份。
  • 数据库将每天从六张x 30个变量x 1列(日)数据更新,每天180个数据点。
  • 我们需要总结各类别的数据 - 第1类(Val 1,Val 2,Val 3)(第2类第2类)
  • 将来在类别1和2中添加更多值的灵活性。

我的初步设计如下。我不知道将数据分成不同的关系表是否有意义。我正在考虑事务数据库,并具有特定类别的视图。所以每天会有180行添加到数据库中。

enter image description here

1 个答案:

答案 0 :(得分:1)

你想出了这个声音。转换为SQL:

create table timesheet (
    day date not null,
    cat1 int not null,
    cat2 int not null,
    var1 double precision not null,
    var2 double precision not null,
    var3 double precision not null,
    -- ... --
    var30 double precision not null,
    primary key (day, cat1, cat2)
);
  

变量1 x变量10的趋势为Category1& 2个月的月份。

不是很精确,但可能是这样的:

select 
    extract(year from current_date)*100+extract(month from current_date) as month,
    avg(var1*var10) as avg_mul_var1_var10
from timesheet
where cat1=? and cat2=?
group by month
order by month;
  

特定类别的观点

不要这样做 - 您只需使用上述查询中的参数查询数据库。

  

所以每天会有180行添加到数据库中。

不 - 只有6行。每个cat1和cat2组合一个。这是每天180个值,每年只有2190行。