前提・実現したいこと
RecoRuのような勤怠管理Webアプリを作成したいのですが、DB設計について悩んでいます。
現在は社員テーブルと勤怠テーブルがあり、それぞれ以下のような構造になっています。
社員テーブル 勤怠テーブル
id id
name user_id
. 日にち(yyyyMMdd)
. 出勤時間
. 退勤時間
. 休憩時間
. 出勤区分
この状態で勤怠表を打刻し、DBに登録するとuser_idと日にち毎にデータが挿入されるため、1年間で365件×従業員数のレコードが登録されることになります。これでは検索が大変になるのではと思いテーブルを分けようと思ったのですが、どのように分ければよいかご助力願えたらと思います。
自分が考えたDB構造としては以下のようなものがあります。
社員テーブル 出勤時間テーブル 退勤時間テーブル 休憩時間テーブル 出勤区分テーブル
id id id id id
name user_id user_id user_id user_id
. date_id date_id date_id date_id
. 出勤時間 退勤時間 休憩時間 出勤区分
それとも勤怠表は月ごとに切り替わるため、月ごとにわけるほうがよいのでしょうか?その際どのような設計にするのが望ましいでしょうか?(月の中間テーブルを作成?)
補足情報(FW/ツールのバージョンなど)
java
SpringBoot
PostgreSQL
回答2件
あなたの回答
tips
プレビュー