前提・実現したいこと
railsで移動平均を折れ線グラフで表示したいと思っています。
移動平均を表示させるようのデータをどこで持つか、
それとも元データを加工して出すのかどっちのほうがいいのかな?
と考えてます。
計測サービスからDLできるcsvデータは下記のような感じです。
/ | keyword | 2019/12/17 | 2019/12/18 | 2019/12/19 | 2019/12/20 | 2019/12/21 | ... |
---|---|---|---|---|---|---|---|
1 | ラーメン 豚骨 おすすめ | 20 | 30 | 40 | 20 | 60 | ... |
2 | ラーメン 塩 おすすめ | 20 | 30 | 40 | 20 | 60 | ... |
3 | ラーメン 醤油 おすすめ | 20 | 30 | 40 | 20 | 60 | ... |
日付下の数値は、アクセス数ではなく検索rankingの数値なので、
少ない数字の方が良いというしろものです。
DBの割り振り
▼keywords table
id | keyword |
---|---|
1 | ラーメン 豚骨 おすすめ |
2 | ラーメン 塩 おすすめ |
3 | ラーメン 醤油 おすすめ |
- has_many :daily
▼dailys table
id | rank | date | keyword_id |
---|---|---|---|
1 | 10 | 2019/12/17 | 1 |
2 | 20 | 2019/12/17 | 2 |
3 | 30 | 2019/12/17 | 3 |
- belongs_to :keyword
まずは、DLしたデータを上記のように格納するのですが、
1週間の移動平均、1ヶ月の移動平均などを表示するときに、
そのためのテーブルを作成したほうがいいか、メソッドで加工したほうがいいのか、
どっちがやりやすいのかな?と考えております。
新しいデータが入ったら自動更新
下記のtableに新しいデータを入れたら
▼dailys table
id | rank | date | keyword_id |
---|---|---|---|
1 | 10 | 2019/12/17 | 1 |
2 | 20 | 2019/12/17 | 2 |
3 | 30 | 2019/12/17 | 3 |
移動平均を算出して、weeklysを更新。
▼weeklys table
id | rank | date | keyword_id |
---|---|---|---|
1 | 22 | 2019/12/17 | 1 |
2 | 41 | 2019/12/17 | 2 |
3 | 59 | 2019/12/17 | 3 |
という流れの実装がいいのかな?と思っています。
ただ、移動平均だと、dailysから取り出して加工したのを表示するだけでもイケると思うのですが、
こういう時ってどうやるとスマートなのかが、今の私では判断できず、
有識者の方に意見いただきたいと思っています。
試したこと
現在Excelで集計しているのですが、
DLしたデータを反映させてメールで送るやりとりが頻繁で、
スプレッドシートで作成するか、
railsミニアプリを作るかで悩んでいます。
スプレッドシートだと、グラフの制御が難しいのと、
レコードが増えた際に、読み込むエリアを関数いじってふやしてあげないといけないので
データベースにぶち込んで、常に新しい状態を生成するアプリ作ったほうがいいのでは?
と思っています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。