2017-03-12 5 views
0

私は、以下の形式のデータを複数持っています。複数可変時間ベースデータのデータモデル

  • 列は変数がカテゴリー1は、3つの値をとり、カテゴリー2はそうそこ2つの値を取るカテゴリ
  • で同じままである行にある
  • 時間経過につれて増加し続ける日(時系列)であります毎日6種類のシートの組み合わせです。

Existing data in excel sheets

私は、データベースにこのデータをキャプチャする必要があります。私はスキーマをどのようにセットアップする必要があるかに関して助けと提案を求めています。以下は考慮すべき点のいくつかです。私は月を超えるカテゴリ1 &カテゴリー2ヶ月のための変数1のx変数10のインスタンスの傾向のために、変数に計算の多くを行うつもり

  • データベースは、毎日180データポイントである6つのシート×30変数×1列(日)のデータから毎日更新されます。
  • カテゴリ2(Val 2、カテゴリ2のVal 2)のカテゴリ1(Val 1、Val 2、Val 3)のデータを要約する必要があります。
  • 将来、カテゴリ1と2に値を追加する柔軟性。

私の初期設計は以下の通りです。私は、データを異なるリレーショナル表に分離することが理にかなっているかどうかはわかりません。私はトランザクションデータベースのラインに沿って考えていて、特定のカテゴリのビューを持っていました。したがって、毎日180行がデータベースに追加されます。あなたが来てアップで最新デザインはかなり音です

enter image description here

+1

どのDBMSですか? Microsoft SQL ServerまたはPostgreSQL? –

+0

@a_horse_with_no_name PostgreSQL –

答えて

1

。 SQLへの翻訳:区分1 &カテゴリーヶ月以上2ヶ月のための変数1のx変数10の

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) 
); 

傾向。

非常に正確で、多分、何か好きではない:特定のカテゴリ

ため

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の組み合わせごとに1つ。これは1日あたり180個の値で、1年あたり2190個の行だけです。

+0

SQLコードをありがとう。私はdbスキーマ設計が初めてです。私はデータがリレーショナル・モデル(外部キーなど)として表現されるいくつかのDB設計を検討していました。これらのリレーショナル・スキーマを調べる価値はありますか? –

関連する問題