質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

解決済

1回答

1288閲覧

集計用日次データの設計

caloriemate

総合スコア5

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2019/11/27 09:53

編集2019/11/27 10:21

前提・実現したいこと

現在、アルバイトのシフト管理アプリケーションを開発しています。
データ計測、閲覧のための設計について質問です。

KPIとして、

  • アルバイト社員のシフト提出率
  • アルバイト社員の提出した今月、翌月、翌々月のシフトの時間数

を追いたいです。
そして、各個人の提出時間数などを日次で記録して閲覧していきたいです。

例えば閲覧したいデータとしては

  • 先月の今時点と比べて提出率(提出人数/合計人数)は高いか低いか
  • 先月の今時点と比べて提出時間数(全合計時間数)は多いか少ないか
  • 先月に翌月分提出した人は今月は翌月分を出しているのか(割合やバイネーム)

です。

前提として、

  • 社員は当月のシフト時間を当月に提出することもできる
  • 社員は翌々月のシフト時間まで提出することができる
  • 社員は提出したシフト時間を変更できる

このような場合に、どのようにデータを取っていけば良いでしょうか?
テーブル設計含めご相談です。

考えたのは

ID名前当月分の提出時間数翌月分の提出時間数翌々月分の提出時間数記録日
XXXYさん2045302019/11/27

のようなデータですがあまり綺麗だとは思えない上、毎日アルバイト社員数分レコードが増えてしまうのが問題ではと考えています。

このような場合には一般的にどのような設計にするべきなのか教えていただきたいです。

補足情報

RDBを利用の場合にはMySQLを想定しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2019/11/27 09:57

[MySQL]タグを追加しては?MySQLのバージョンも明記できた方が良いです。
sazi

2019/11/27 10:11

「アルバイト社員のシフト提出率」については提出したかどうかだったら率など意味が無いのでは? 提出率の分子・分母は何ですか?
caloriemate

2019/11/27 10:14 編集

分母はアルバイト社員のその月の全人数です! 提出した人数 / 全社員 です。
guest

回答1

0

ベストアンサー

質問の内容だと記録日が当月という事ですよね。
・翌月分とか振り分けるのが面倒。
・前月分の翌月分がある場合で、当月報告が無ければ遡らないと駄目。

(社員ID, 勤務年月, 提出時間数, 記録日)
※上記太字部分がプライマリーです。
提出内容を全て記録するなら、記録日もプライマリーに加える必要があります。

上記のデータに対して、分析関数のlead()やlag()が使えるDBMSであれば、前月や前々月、翌月や翌々月を取得するのは手間ではありません。
但し、提出が無い事を考えると、基準となる年月のデータが必要になります。

postgresであればgenerate_seriesが使えますし、分析関数も使用できるので、良さそうな感じですが。

投稿2019/11/27 10:29

編集2019/11/27 12:29
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

caloriemate

2019/11/27 10:38

ありがとうございます!!! 勤務年月をカラムにするのですね!!スッキリしました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問