プログラム実装

勤怠管理システムの自作-DB構造

DB定義

自作勤怠管理システムのDB定義です。SQL Serverを想定しています。
桁数定義が関係ない型の場合、桁に「-1」と書かれている場合があります。

ユーザーマスタ

社員とユーザーを同じものとして扱う。

労働基準法第107条の「労働者名簿」と同等の機能を持つ。
→「遅滞なく訂正」できるマスタメンテ機能が必要。(労働基準法第107条)
 法的に重要な書類なので、編集できる人を限定して、可能なら変更ログも残ると安心。
→退職日から3年間は保存が必須。5年間保存する可能性も考えておく。
 (労働基準法第109条で「5年間保存」と書かれていて、労働基準法第143条で「当分の間3年間保存」と書かれている)

項目は労働基準法 第53条(様式第19号)を参考に決定した。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
ログインIDnvarchar1000FALSETRUE内部的にはメールアドレスと同じ値を格納する。重複はNG。
メールアドレスnvarchar1000FALSETRUE
氏名nvarchar1000FALSETRUE労働者名簿必須事項
氏名カナnvarchar1000FALSEFALSE氏名のソート用。入力されていない場合は氏名の文字コードでソート。
性別tinyint00FALSETRUE労働者名簿必須事項 1:男 2:女 (0:未回答)
生年月日datetime00FALSETRUE労働者名簿必須事項
住所nvarchar2000FALSETRUE労働者名簿必須事項
従事する業務の種類nvarchar1000FALSEFALSE労働者名簿必須事項 労働基準法施行規則 第53条2項 従業員が30名未満なら入力不要。
入社日datetime-10FALSETRUE労働者名簿必須事項 「雇入れ年月日」と同じ意味。この日を基準に有休が発生する。継続勤務の場合に変更してはならない。
退職日datetime-10FALSEFALSE労働者名簿必須事項 退職日または死亡日。労働基準法 第109条により、この日付から3年間は絶対に保存が必要。退職日当日も労働契約は生きている。
退職事由nvarchar10000FALSEFALSE労働者名簿必須事項 退職または死亡事由(退職の事由が解雇の場合にあっては、その理由を含む。)
履歴nvarchar10000FALSEFALSE労働者名簿必須事項 記載内容について明確な指定はない。
管理監督者フラグbit00FALSETRUE労使協定の届出書を作成する際、「常時使用する労働者数」の計算をするために使う。trueのデータは労働者に含めない。
更新日datetime00FALSEFALSE
更新者int100FALSEFALSE

パスワードマスタ

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
パスワードvarcharMAX0FALSETRUE
失敗カウントint00FALSEFALSE
ロックアウト終了時間datetime00FALSEFALSE
打刻専用トークンvarcharMAX0FALSEFALSE重複不可。スマホから打刻するときにこの値でユーザー識別する。

役割マスタ

月報などの承認順位を定義するテーブル。
承認レベルに下記のような値をセットする
一般:1
上長:10
総務:50
社長:99

ついでに、システム内の各機能へのアクセス権も管理するようにしました。
・月報締処理アクセス権 (月報の締め処理を実行できる)
・システム管理者 (マスタメンテ機能全般にアクセスできる)
・個人情報アクセス権 (ユーザーマスタにアクセスできる)
・月報承認アクセス権 (月報に承認印を押せる。上長以上のユーザー全員が該当する。)

論理名小数桁PKNot
Null
備考
役割IDnvarchar100TRUETRUE
役割名nvarchar1000FALSEFALSE
承認レベルint00FALSETRUE承認に関わらないデータであれば0。数値が大きい方が上位の承認者。
ソート順int00FALSEFALSE承認レベル0のデータを並び替えるときに使う。その他はnull。

ユーザー役割マスタ

ユーザーと役割を紐付ける
単一のユーザーに同レベルの役割が紐づくことはない想定

論理名小数桁PKNot
Null
備考
ユーザーIDint100TRUETRUE
役割IDnvarchar100TRUETRUE
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

グループマスタ

会社の部課に相当する情報を保持する。

論理名小数桁PKNot
Null
備考
グループIDint100TRUETRUE
グループ名nvarchar1000FALSETRUE

グループ階層マスタ

グループのツリー構造を管理する。

論理名小数桁PKNot
Null
備考
親グループIDint100TRUETRUE
子グループIDint100TRUETRUE
深度int-10FALSETRUE

ユーザー所属グループ階層マスタ

ユーザーとグループの紐付け情報を保持する。
ユーザーが所属するグループのみを保持する。親グループを辿る場合はグループ階層マスタを使う。

論理名小数桁PKNot
Null
備考
グループIDint100TRUETRUE
ユーザーIDint00TRUETRUE
深度int-10FALSETRUE現状0しか用意しない想定。

会社設定マスタ

1件だけ登録する。
帳票出力時に使用する会社名や、勤怠管理システム全体の設定情報を混ぜて保存している。

標準労働時間 ~ カレンダー年初日 までのカラムは運用中に変更されると非常に都合が悪く、運用開始時に固定値を入れたままメンテナンスしない想定。

論理名小数桁PKNot
Null
備考
会社IDint00TRUETRUE0固定
標準労働時間decimal101FALSETRUE会社で最も長い労働時間を分単位で設定する。基本は480分。有休チケット付与時の初期ポイントとしても使う。
チケット付与タイプint00FALSETRUE有休の付与方法。0:全社員一律、1:個人の入社日基準
チケット付与日char40FALSETRUE有休付与が全社員一律である場合、有休の付与日 MMDD
カレンダー年初日char40FALSETRUEカレンダーを年単位で入力するとき、年の最初の日付。年度の最初の日・決算日の翌日・1月1日など。MMDD形式。
法人名nvarchar5120FALSEFALSE帳票出力の際に使用する会社名。未設定でも構わないが、帳票がおかしな表示になる。
使用者職名nvarchar1000FALSEFALSE帳票出力の際に使用する。事業場マスタの同名項目で上書き可能。
使用者nvarchar1000FALSEFALSE帳票出力の際に使用する。基本的に社長の名前を登録する。事業場マスタの同名項目で上書き可能。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

ユーザー契約マスタ

ユーザーと契約を紐付ける。任意の時点で複数の契約が紐付く場合は入力エラーとする。
最初の契約開始日~退職日まで常に契約が紐付いている必要がある。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
事業場IDint00FALSETRUE所属する事業場が変わるタイミングで月報を作る必要がある。
契約IDint00FALSETRUE
カレンダーIDint00FALSETRUEシフト勤務の場合はカレンダーだけを付け替える想定
契約開始日datetime00TRUETRUE基本的に入社日と同じ。
勤怠管理システム運用開始時点で在籍している社員は、運用開始日を入力する。
契約終了日datetime00FALSEFALSEこの瞬間をもって契約が終了する、次のFromと同じ値を入力する。終了日が未定の場合はNULL。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

事業場マスタ

労働基準法に登場する「使用者は、当該事業場に、労働者の過半数で組織する~」の事業場を示す。労使協定に関する情報を持つ。

また、月報全体の計算ロジックに関する設定も持っている。
所属する事業場が変わるタイミングで月報を別々に作る必要がある。

論理名小数桁PKNot
Null
備考
事業場IDint00TRUETRUE
事業場名nvarchar1000FALSETRUE
解釈ロジックnvarchar1000FALSETRUE月報全体の集計に関する処理ロジック名
ソースコードのクラス名をセットして、この設定をもとに呼び出すクラスを切り替える。
締日tinyint00FALSETRUE月ごとの締処理の日付をセット。月末日であれば31をセットする。
特例事業場フラグbit00FALSETRUE1週間の労働時間の限度が変化する。通常は40h、特例であれば44h。
限度時間の適用フラグbit00FALSETRUE基本的にtrue。 trueの場合は限度時間のカウントを行う。限度時間の適用が除外される業種については例外的にfalseになる場合が有り得る。
有休チケット買上_期限切れbit00FALSETRUEネタ機能「有給休暇の買い上げ」のON/OFFを設定する。
勤怠管理システムの自作-有休の買い上げ
有休チケット買上_退職bit00FALSETRUE
季節休チケット買上_期限切れbit00FALSETRUE
季節休チケット買上_退職bit00FALSETRUE
事業の種類nvarchar1000FALSEFALSE帳票出力の際に使用する。
法人名nvarchar5120FALSEFALSE帳票出力の際に使用する。こちらに入力がある場合、会社設定マスタの値を上書きする。
郵便番号nvarchar80FALSEFALSE帳票出力の際に使用する。フレックスの場合のみ値が入る。
所在地nvarchar10000FALSEFALSE帳票出力の際に使用する。
電話番号nvarchar200FALSEFALSE帳票出力の際に使用する。
所轄労働基準監督署nvarchar1000FALSEFALSE帳票出力の際に使用する。
使用者職名nvarchar1000FALSEFALSE帳票出力の際に使用する。こちらに入力がある場合、会社設定マスタの値を上書きする。
使用者nvarchar1000FALSEFALSE帳票出力の際に使用する。こちらに入力がある場合、会社設定マスタの値を上書きする。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

月報承認役割マスタ

事業場単位で月報承認に関与する役割を設定する。月報承認データだけでは承認されたことしか分からないので「あとは誰が承認するのか」を知るために、空の押印欄を表示するときの元データとして使う。

論理名小数桁PKNot
Null
備考
事業場IDint00TRUETRUE
役割IDnvarchar100TRUETRUE

契約マスタ

月報の1日分のデータ作成に関わる設定を持つ。

論理名小数桁PKNot
Null
備考
契約IDint00TRUETRUE
契約名nvarchar1000FALSETRUE
解釈ロジックnvarchar1000FALSETRUE日単位での処理ロジック名。
ソースコードのクラス名をセットして、この設定をもとに呼び出すクラスを切り替える。
特例事業場フラグbit00FALSETRUEこのフラグがONの場合のみ週44hの労働時間を設定できる。また、特例ではない事業場と紐付けできない。
日付変更線time40FALSETRUEこの時刻を境に労働時間を計上する日付を切り替える。0:00~勤務開始時刻のどこかの値になるはず。 前日からの継続をのぞき、1日の中で最初に登場する契約の日付変更線が優先。
勤務開始時刻time40FALSETRUE
勤務終了時刻time40FALSETRUE
休憩設定IDint00FALSEFALSE
所定労働時間(分)int00FALSETRUE所定労働時間の2倍の時間労働した場合、代休を発生させる。都度計算するのは面倒なので、事前に算出しておく
時間休利用日数int00FALSETRUE時間休を何日分使用して良いか設定する。法的に最大値は5。 休暇設定マスタで使用が禁止されている場合、そちらが優先。
法定休日変動tinyint00FALSETRUE0:固定、1:週内で変動、2:4週間で4日 法定休日に出勤している場合、所定休日と入れ替えることが出来るかどうか。また、入れ替えられる範囲。
超過労働起算日datetime00FALSETRUE36協定に記載する労働時間集計の起算日。変形労働制の起算日と大抵一致する。
起算曜日tinyint00FALSETRUE法定休日を変動させる場合、かつ、変動範囲が週内である場合、起算日となる曜日  0:日~6:土
開始打刻丸め種別tinyint00FALSETRUE0:加工しない, 1:切り上げ, 2:切り下げ, 3:四捨五入
勤怠管理システムの自作-打刻時刻の丸め
開始打刻丸め間隔smallint00FALSETRUE単位:分
終了打刻丸め種別tinyint00FALSETRUE0:加工しない, 1:切り上げ, 2:切り下げ, 3:四捨五入
終了打刻丸め間隔smallint00FALSETRUE単位:分
変形労働時間フラグbit00FALSETRUEfalse:通常勤務  true:フレックスや変形労働時間制
変形労働種別tinyint00FALSETRUE通常、1か月、1年、1週間、フレックス。 カレンダーマスタの同名項目と値が一致する場合のみ、紐付けることができる
変形期間年smallint00FALSEFALSE
変形期間月smallint00FALSEFALSE
変形期間日smallint00FALSEFALSE
変形期間週smallint00FALSEFALSE入力・表示用
変形期間起算日datetime00FALSEFALSE
変形期間起算日入力タイプtinyint00FALSEFALSE特定の日付、毎月x日(1か月単位の場合のみ)  
変形期間起算日日付入力値smallint00FALSEFALSEユーザーの入力値を保持するため。処理には関与しない。
変形期間分割月smallint00FALSEFALSE1年単位の変形労働のみ。変形期間を区分する単位を指定する。
変形期間分割日smallint00FALSEFALSE1年単位の変形労働のみ。変形期間を区分する単位を指定する。
フレックス清算期間月smallint00FALSEFALSEフレックスの場合のみ使用する。 清算期間を指定する。
フレックス清算期間日smallint00FALSEFALSE
フレックス総労働時間指定方法tinyint00FALSEFALSE1:固定値、2:1日n時間×所定労働日数、10:標準となる1日の労働時間 × 所定労働日数(簡単入力機能。挙動は2と同じ)
フレックス総労働時間固定値bigint00FALSEFALSE固定値で指定する場合、こちらに値が入る
フレックス総労働時間1日あたりtime00FALSEFALSEn時間×所定労働日数で指定する場合、こちらに値が入る
フレックス完全週休二日制フラグbit00FALSEFALSE完全週休二日制である場合はTrue。 法定労働時間の限度が変化する。
フレックス標準となる1日の労働時間int00FALSEFALSE単位:分
フレックス実働不足繰越フラグbit00FALSEFALSE
労使協定有効期間Fromdatetime00FALSEFALSE
労使協定有効期間Todatetime00FALSEFALSE
労使協定成立年月日datetime00FALSEFALSE
労使協定当事者職名nvarchar1000FALSEFALSE
労使協定当事者氏名nvarchar1000FALSEFALSE
労使協定当事者選出方法nvarchar1000FALSEFALSE労働組合ではない場合のみ必須
旧協定IDint00FALSEFALSE「旧契約」に相当するデータがシステム内に存在する場合、その契約IDを保持する。
旧協定の対象期間起算日datetime00FALSEFALSE
旧協定の対象期間年smallint00FALSEFALSE
旧協定の対象期間月smallint00FALSEFALSE
旧協定の対象期間日smallint00FALSEFALSE
旧協定の労働時間が最も長い日の労働時間数int00FALSEFALSE単位:分
旧協定の労働時間が最も長い週の労働時間数int00FALSEFALSE単位:分
旧協定の対象期間中の総労働日数smallint00FALSEFALSE
労働時間が最も長い日の労働時間数int00FALSEFALSE単位:分。 カレンダーを操作する度に再計算し、この項目を更新する。「旧協定の・・・」の元ネタとして参照する。1か月単位、1年単位の場合に値が入る。
労働時間が最も長い週の労働時間数int00FALSEFALSE単位:分。 カレンダーを操作する度に再計算し、この項目を更新する。「旧協定の・・・」の元ネタとして参照する。1か月単位、1年単位の場合に値が入る。
対象期間中の総労働日数smallint00FALSEFALSEカレンダーを操作する度に再計算し、この項目を更新する。「旧協定の・・・」の元ネタとして参照する。
実質有効期間Fromdatetime00FALSEFALSEこの契約をユーザーと紐付けることができる期間。自動計算。 労使協定が有効であっても変形期間外であればユーザーとの紐づけ不可。
実質有効期間Todatetime00FALSEFALSEこの契約をユーザーと紐付けることができる期間
業務の種類nvarchar1000FALSEFALSE帳票出力の際に使用する。複数行入力可能。
1週間の平均労働時間数int00FALSEFALSE単位:分。帳票出力用。処理の簡素化のため、カレンダー登録時に計算して保持する。
労働時間が48時間を超える週の最長連続週数smallint00FALSEFALSE帳票出力用。処理の簡素化のため、カレンダー登録時に計算して保持する。
対象期間中の労働時間が48時間を超える週数smallint00FALSEFALSE帳票出力用。処理の簡素化のため、カレンダー登録時に計算して保持する。
対象期間中の最も長い連続労働日数smallint00FALSEFALSE帳票出力用。処理の簡素化のため、カレンダー登録時に計算して保持する。
特定期間中の最も長い連続労働日数smallint00FALSEFALSE帳票出力用。処理の簡素化のため、カレンダー登録時に計算して保持する。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

限度時間マスタ

契約データ1件に対して限度時間データ4件が紐付く。限度時間を超えた分の労働時間は、月報の専用項目に計上される。

論理名小数桁PKNot
Null
備考
契約IDint00TRUETRUE
限度時間種類tinyint00TRUETRUE0:超過時間、1:限度時間(1日を超え3か月以内の期間)、2:限度時間(1年間)、3:60時間超過
限度時間bigint00FALSETRUETimeSpan.Ticks。 限度時間最大値は「平成10年労働省告示第154号」に定めが有る。
期間年tinyint00FALSETRUE「1年間」のときのみ1。 それ以外の場合は0
期間月tinyint00FALSETRUE限度時間計算期間 0~3のいずれか
期間日tinyint00FALSETRUE限度時間計算期間 0以上 1週間=7日といった感じの値を登録。 アプリ側で最大値を28とする。
割増率decimal64FALSETRUE限度時間種類のなかで、どちらの割増率が高いかを判定するために使う。 25%であれば0.25のように登録する。 代替休暇への振替時に使用する。給与計算には使わない。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

休憩時間マスタ

何となく作ってしまって、何となく使っているテーブル。本来は必要ない。

論理名小数桁PKNot
Null
備考
休憩設定IDint100TRUETRUE
休憩設定名nvarchar1000FALSEFALSE
更新日datetime-10FALSEFALSE
更新者int100FALSEFALSE

休憩時間詳細マスタ

契約マスタと紐付く。

論理名小数桁PKNot
Null
備考
休憩設定IDint100TRUETRUE
休憩詳細IDint-10TRUETRUE
休憩時間開始time00FALSETRUE基準となる日の0時0分を起点とした経過時間。
休憩時間終了time00FALSETRUE基準となる日の0時0分を起点とした経過時間。深夜2時といった登録時は24時間を超えることも有る。
強制休憩bit00FALSETRUEONである場合、月報作成時に強制的に休憩時間を計上する。
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

契約特定期間マスタ

1年単位の変形労働時間制の場合のみ使用する。特定期間の設定を保持する。

論理名小数桁PKNot
Null
備考
契約IDint00TRUETRUE
連番int00TRUETRUE
特定期間Fromdatetime00FALSETRUE
特定期間Todatetime00FALSETRUE

契約フレックス時間設定マスタ

契約情報編集画面で入力したコアタイム・フレキシブルタイムの設定を保持しておくテーブル。この値をカレンダー設定時の初期値として使う。

論理名小数桁PKNot
Null
備考
契約IDint00TRUETRUE
連番int00TRUETRUE
時刻Fromtime00FALSETRUE
時刻Totime00FALSETRUE
労働義務bit00FALSETRUEtrue:コアタイム false:フレキシブルタイム

休暇設定マスタ

契約毎に「時間休を取得して良いか」「最小利用単位は何ポイントか」「何ポイントごとに使えるか」を定義する。時間休と代替休暇の場合にこのテーブルを参照する。

論理名小数桁PKNot
Null
備考
契約IDint00TRUETRUE
チケットタイプint00TRUETRUE
使用可否bit00FALSETRUEtrue:使用可能。時間休や代替休暇に対応していない場合はfalseにする。
最小利用ポイントdecimal101FALSETRUE時間休や代替休暇を使うとき、少なくともこの値以上はポイントを使う必要がある。時間休の場合60以上60単位。それ以外の場合は1以上。
ポイント利用単位bigint101FALSETRUE時間休や代替休暇を使うときの刻み値。時間休の場合60以上60単位。それ以外の場合は原則1
他チケットとの連結使用可否bit00FALSEFALSEチケットタイプが代替休暇の場合のみ使用する。それ以外の場合はNULL。代替休暇チケットのポイントが1日または半日に満たない場合、他の休暇チケットと連結して使用して良いかを指定する。
更新日date00FALSEFALSE
更新者int00FALSEFALSE

カレンダーマスタ

一つの契約に複数件のカレンダーを紐付けられる。所定休日が違う場合や、変形労働時間制で始業時刻が違う場合にカレンダーを切り替えられる。

論理名小数桁PKNot
Null
備考
カレンダーIDint00TRUETRUE
並び順int00FALSEFALSE
カレンダー名nvarchar1000FALSEFALSE
契約IDint00FALSETRUE当カレンダーが依存する契約IDを保持する。
特例事業場フラグbit00FALSETRUEこのフラグがONの場合のみ週44hの労働時間を設定できる。また、特例ではない事業場と紐づけできない。
更新日datetime-10FALSEFALSE
更新者int00FALSEFALSE

カレンダー詳細マスタ

1日ごとに労働義務の有無を設定する。

論理名小数桁PKNot
Null
備考
カレンダーIDint00TRUETRUE
カレンダー日付datetime00TRUETRUE
日付タイプtinyint00FALSETRUE0:平日(労働義務を課す日)、1:法定休日、2:法定外休日(所定休日)、4:未設定(1年単位の変形労働時間制で敢えて指定していないことを示す)
備考nvarchar1000FALSEFALSE祝日の名称を格納する。
更新日datetime-10FALSEFALSE
更新者int-10FALSEFALSE

カレンダー所定労働日数マスタ

ある日付を起点とした所定労働日数を保持する。有休付与の際、このテーブルの所定労働日数をもとに付与日数を決める。

論理名小数桁PKNot
Null
備考
カレンダーIDint00TRUETRUE
有効期間FROMdatetime00TRUETRUEこの日以降は有効。 複数件該当するときは、この列の値が最大のデータを使う。
週所定労働日数int00FALSEFALSE有休付与数を決定するために使用する。週・年どちら一方への入力が必須。
年所定労働日数int00FALSEFALSE週以外の期間で定められている場合こちらへ入力する。有休付与数を決定するために使用する。週・年どちら一方への入力が必須。
残り労働日数smallint00FALSEFALSE1年単位の変形労働のみ。最初以外の期間について、労働時間を特定せずに、この値を最大値として決めておけば良い。
残り総労働時間bigint00FALSEFALSE1年単位の変形労働のみ。最初以外の期間について、労働時間を特定せずに、この値を最大値として決めておけば良い。

カレンダー詳細勤務時間マスタ

カレンダーの1日ごとに労働義務を課す時間を設定する。フレックスタイム制の場合はフレキシブルタイムの設定も格納する。 時間帯の重複はNG。
当テーブルに変更がある場合、カレンダー詳細マスタの更新日時も変化する。

論理名小数桁PKNot
Null
備考
カレンダーIDint00TRUETRUE
カレンダー日付datetime00TRUETRUE
連番int00TRUETRUE必ず時間帯を昇順に並べた結果に対して連番を振ること。アプリ内実装で連番の並びに依存している。
日付変更線text00FALSETRUE連番が異なったとしても全て同じ値を格納する。1日3交代のシフト制で勤務時間が1時間重複している場合を想定した場合、必ず日付変更線を跨いで勤務する者が出ることへの対策
勤務開始時刻time00FALSETRUE
勤務終了時刻time00FALSETRUE
所定労働時間(分)int00FALSETRUE所定労働時間の2倍の時間労働した場合、代休を発生させる。都度計算するのは面倒なので、事前に算出しておく
労働義務bit00FALSETRUEtrue:コアタイム false:フレキシブルタイム

カレンダー詳細休憩時間マスタ

カレンダーの1日ごとに休憩時間を設定する。カレンダー編集画面の初回起動時に、契約マスタの値をコピーする形で毎日のデータが登録される。
勤務時間の指定が無く、強制休憩の時間だけを指定するというのも利便性の都合から認める。
当テーブルに変更がある場合、カレンダー詳細マスタの更新日時も変化する。

論理名小数桁PKNot
Null
備考
カレンダーIDint00TRUETRUE
カレンダー日付datetime00TRUETRUE
連番int00TRUETRUE
休憩時間開始time00FALSETRUE
休憩時間終了time00FALSETRUE
強制休憩bit00FALSETRUEONである場合、月報作成時に強制的に休憩時間を計上する。OFFのデータは帳票出力で使う可能性があるが、勤務時間の計算には関与しない。

打刻

打刻1回ごとのデータを保持する。システム内で最も件数が多くなる想定。DateTime型を使うため、精度は3ミリ秒単位。実際の運用でキー重複が発生することは無い想定。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
打刻時刻datetime00TRUETRUE打刻された日時。丸め処理を行った結果が入る。
打刻種別tinyint10FALSETRUE打刻タイプ 0:ニュートラル、1:勤務開始、2:勤務終了 、3:日付越え終了、4:休憩開始、5:休憩終了
勤怠管理ステムの自作-打刻種別
手動入力フラグbit00FALSETRUEtrue:打刻修正画面から入力した  false:システム日時を使って打刻した
IPアドレスvarchar390FALSEFALSE
ホスト名nvarchar2560FALSEFALSE
打刻時刻控えdatetime00FALSETRUE実際に打刻された日時。丸め処理を行う前の値が入る。

仮打刻

月報修正の際に使用する。月報修正画面でユーザーが入力した通りの時間を登録し、当テーブルのデータをもとに月報を作成する。これにより、月報の新規作成・修正はデータを取得元を変えるだけになり、月報作成ロジックは1つで済む。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
打刻時刻datetime00TRUETRUE
打刻種別tinyint00FALSETRUE
月報IDint00FALSETRUE訂正データの元になっている月報ID。 月報を削除するとき、この値をもとに仮打刻データも削除する。

打刻訂正ワーク

打刻修正画面で使う。画面で入力した値を一旦このテーブルに格納し、データの重複チェックを行う。毎回DBに問い合わせるより処理速度が早くなるはず。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
打刻時刻datetime00TRUETRUE
連番int00TRUETRUE画面上で入力した時点では削除ON/OFFの同一値を持ったデータが存在し得る。連番を付けることで見分ける。
打刻種別tinyint00FALSETRUE
手動入力フラグbit00FALSETRUE
削除フラグbit00FALSETRUE画面上で削除対象としてチェックされたデータ。

打刻予約

打刻されたタイミングで同時に更新すべきチケットの情報を登録しておく。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
チケットIDint-10TRUETRUE
予約タイプtinyint00TRUETRUE1:開始時刻への打刻、2:終了時刻への打刻
更新日datetime-10FALSEFALSE
更新者int00FALSEFALSE

月報

論理名小数桁PKNot
Null
備考
月報IDint100TRUETRUE
対象年int00FALSETRUE
対象月int00FALSETRUE
ユーザーIDint00FALSETRUE
締日datetime00FALSEFALSENull以外 = 締め処理が済んでいる。締め済みであれば変更は不可。締め処理の解除機能を搭載するが、通常の運用で解除されることは無いと考えて良い。
実労働時間合計bigint00FALSETRUE特別計上(有休の買い上げ)、フレックスの労働時間繰越を加えた実働時間。
振替前実労働時間合計bigint00FALSETRUE純粋な実動時間の合計。
給与支払用実働時間合計bigint00FALSETRUE「実労働時間合計」と同じ値。給与計算データ出力時には、こちらの値を使う。
超過労働時間合計bigint00FALSETRUE
深夜労働時間合計bigint00FALSETRUE
休日労働時間合計bigint00FALSETRUE法定休日に労働した時間。
限度時間外労働時間1bigint00FALSETRUE労使協定によって定められた限度時間を超えた分。1日を超え3か月以内の期間
限度時間外労働時間2bigint00FALSETRUE労使協定によって定められた限度時間を超えた分。1年間
法定時間外労働2bigint00FALSETRUE超過労働が月60時間を超えた分。代替休暇に振り替えた分は含めない。
振替前法定時間外労働2bigint00FALSETRUE超過労働が月60時間を超えた分。代替休暇に振り替えた分の値も含む。
休業時間合計bigint00FALSETRUE休業手当の対象となる時間
有給チケットポイント合計decimal101FALSETRUEプラス値
非常時払bit00FALSETRUE現状、値が入ることは無い。
仮計算フラグbit00FALSETRUE出勤率計算のために作られたデータであることを示す。 出勤率計算以外の場面では無視しなければならない。
更新日datetime-10FALSEFALSE
更新者int00FALSEFALSE

月報詳細

月報の1日ごとのデータを保持する。

論理名小数桁PKNot
Null
備考
月報IDint00TRUETRUE
明細IDint00TRUETRUE
労働日datetime00FALSETRUE
勤務開始時刻datetime00FALSEFALSE
勤務終了時刻datetime00FALSEFALSE
休憩時間time00FALSEFALSE
強制休憩bit00FALSETRUE新規登録時はtrue。契約マスタに登録された強制休憩の時間帯に従うことを示す。月報を修正するとき、強制休憩時間に従わず、独自の値を入力することも可能。
私用時間time00FALSEFALSE私用外出チケットの時間。 念のため休憩時間とは分けてある。休憩時間と統合してもおそらく問題ない。
実労働時間time00FALSEFALSE
振替前実労働時間time00FALSEFALSE代休振替前の実働時間。所定労働時間の2倍労働した場合に、実働時間を半分にして代休に振り替えることが有る。「1週間で40時間した」のチェックの際はこちらの値を使う。
超過労働時間time00FALSEFALSE
深夜労働時間time00FALSEFALSE
休日労働時間time00FALSEFALSE
休業時間time00FALSEFALSE
前日からの継続勤務bit00FALSETRUETrue:前日から継続して勤務している。もし、始業時刻後の労働を残業扱いにする場合、このフラグを使って継続勤務か否かを判定する。
日付タイプtinyint10FALSETRUEカレンダー詳細マスタの同名項目の値をコピーする。月報作成時点でのカレンダー設定を保持するために使う。
有給休暇ポイントdecimal101FALSETRUE有給休暇として扱った季節休やら代替休暇やら全てのポイントが入る。1ポイント=通常労働時間1分相当。 給与計算システムへの連携に使用する。
労働義務tinyint-10FALSETRUE出勤率の計算に使用する。0:労働義務なし(または労働義務免除)(全労働日から除く)、1:労働義務があり出勤した(出勤したものと見なす)、2:労働義務があり出勤しなかった。1秒でも出勤していれば義務を果たしたとみなす。
法定休暇繰越bit00FALSETRUE深夜労働で日付が変わったとき、翌日が法定休日であったため、0:00以降を法定休日労働として計上した場合にtrueとなる。翌月の月報を作成する際にこのフラグを参照し、法定休日を勝手にシフトさせないようにする。
備考varchar2000FALSEFALSE未使用。作業内容を保持するつもりで用意したが、アプリ側から入力する方法が無い。
所定労働時間(分)int00FALSETRUE月報作成時点での所定労働時間をコピーしておく。集計処理を簡単にするための対策。
フレックス労働義務繰越bigint00FALSEFALSEフレックスタイム制の清算期間の最終日である場合値が入る。次の清算期間に繰り越す労働義務。TimeSpan.Ticks。関係ない場合はnullが入る。
清算期間と月報集計期間が必ず一致する保証が無いため、月報テーブルではなく、こちらに値を持たせる。

月報チケット

月報とチケットの紐付けデータを保持するテーブル。

論理名小数桁PKNot
Null
備考
月報IDint00TRUETRUE
明細IDint00TRUETRUE
チケットIDint00TRUETRUE

月報承認

承認印に相当するデータ。月報の承認申請を行った時点で、本人~最上位承認者まで全員分のデータを生成する。上長が承認・却下したときは既存のデータを更新する。最初に全員分のデータを作成することで、承認印が押されていない状態の枠を簡単に生成できるようになる。

論理名小数桁PKNot
Null
備考
月報IDint00TRUETRUE
承認レベルint00TRUETRUE1:自己承認。2~99:上長承認。
承認ユーザーIDint00FALSETRUE
承認者役割nvarchar100FALSETRUE画面表示時、押印欄に表示する役割名を取得するためのキー。 承認レベルは一意の想定だが、主キーではないため検索には使わない
承認フラグbit00FALSEFALSEtrue:承認、false:却下、null:未確定(承認申請と同時に作ったデータであり、まだ承認・却下されていない)
承認日時datetime00FALSETRUE承認・却下を行った日時。更新日と同じ値になるが、今後も一致し続ける保証が無いため、別の項目に分けている。
更新日datetime00FALSEFALSE

月報コメント

月報を却下するときにコメントを登録するために使う。
却下後に再申請されたとき、なぜ却下したのか確認するために使う。
複数回にわたって申請、却下を繰り返すことが有り得るため、承認データとは分離してログのような形式で保持する。

論理名小数桁PKNot
Null
備考
コメントIDint00TRUETRUE
ユーザーIDint00FALSETRUEコメントを書いたユーザーのID
投稿日時datetime00FALSETRUE
月報IDint00FALSETRUE月報を修正するとき、対象の月報IDを付け替える。月報と紐付かなくなることはない。
承認者役割nvarchar100FALSETRUE
承認フラグbit00FALSEFALSEtrue:承認、false:却下、null:未確定
コメント本文nvarchar5000FALSEFALSE

月報詳細集計

項目は月報詳細テーブル+α。日次バッチで作成した月報データを保持する。
出勤率計算時と上長による残業時間閲覧時に使う。月報詳細テーブルにデータが存在する場合、そちらを優先する。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
労働日datetime00TRUETRUE
勤務開始時刻datetime00FALSEFALSE
勤務終了時刻datetime00FALSEFALSE
休憩時間time00FALSEFALSE
強制休憩bit00FALSETRUE新規登録時はtrue。月報を複数回訂正するとき、強制休憩時間を使うか無視するかを判定する。
私用時間time00FALSEFALSE私用外出チケットの時間。 休憩時間と合計して扱う。 休憩時間と統合してもおそらく問題ない。
実労働時間time00FALSEFALSE
振替前実労働時間time00FALSEFALSE代休振替前の実働時間。所定労働時間の2倍労働した場合に、実働時間を半分にして代休に振り替えることが有る。「1週間で40時間した」のチェックの際はこちらの値を使う。
超過労働時間time00FALSEFALSE
深夜労働時間time00FALSEFALSE
休日労働時間time00FALSEFALSE
休業時間time00FALSEFALSE
前日からの継続勤務bit00FALSETRUETrue:前日から継続して勤務している。もし、始業時刻後の労働を残業扱いにする場合、このフラグを使って継続勤務か否かを判定する。
日付タイプtinyint10FALSETRUEカレンダー詳細マスタの同名項目の値をコピーする。月報作成時点でのカレンダー設定を保持するために使う。
有給休暇ポイントdecimal101FALSETRUE有給休暇として扱った季節休やら代替休暇やら全てのポイントが入る。1ポイント=通常労働時間1分相当。 給与計算システムへの連携に使用する。
労働義務tinyint-10FALSETRUE出勤率の計算に使用する。0:労働義務なし(または労働義務免除)(全労働日から除く)、1:労働義務があり出勤した(出勤したものと見なす)、2:労働義務があり出勤しなかった。1秒でも出勤していれば義務を果たしたとみなす。
法定休暇繰越bit00FALSETRUE深夜労働で日付が変わったとき、翌日が法定休日であったため、0:00以降を法定休日労働として計上した場合にtrueとなる。翌月の月報を作成する際にこのフラグを参照し、法定休日を勝手にシフトさせないようにする。
備考varchar2000FALSEFALSE未使用。作業内容を保持するつもりで用意したが、アプリ側から入力する方法が無い。
所定労働時間(分)int00FALSETRUE月報作成時点での所定労働時間をコピーしておく。集計処理を簡単にするための対策。
フレックス労働義務繰越bigint00FALSEFALSEフレックスタイム制の清算期間の最終日である場合、値が入る。次の清算期間に繰り越す労働義務。TimeSpan.Ticks。関係ない場合はnullが入る。
清算期間と月報集計期間が必ず一致する保証が無いため、月報テーブルではなく、こちらに値を持たせる。
対象年int00FALSETRUE当テーブル独自。 月報集計時に検索しやすくする。
対象月int00FALSETRUE当テーブル独自。 月報集計時に検索しやすくする。

月報元データワーク

月報作成処理で使うワークテーブル。打刻データや契約データを抽出して、一旦このテーブルに書き込む。このテーブルを使うことで処理が単純になるはず・・・

打刻データ1件ごとに、打刻された時点の契約情報を紐付ける。月報作成ロジックでは、このデータを使って労働時間を計算する。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
担当範囲FROMdatetime00TRUETRUE
担当範囲TOdatetime00FALSEFALSE
連番int00TRUETRUE
労働時間計上日datetime00FALSETRUE
日付タイプtinyint00FALSETRUE
事業場IDint00FALSETRUE
契約IDint00FALSETRUE
契約開始日datetime00FALSETRUE
契約終了日datetime00FALSEFALSE
カレンダーIDint00FALSETRUE
日付変更線time00FALSETRUE
解釈ロジックnvarchar1000FALSETRUE
事業場解釈ロジックnvarchar1000FALSETRUE
締日tinyint00FALSETRUE
勤務開始時刻time00FALSETRUE
勤務終了時刻time00FALSETRUE
休憩設定IDint00FALSEFALSE
所定労働時間(分)int00FALSETRUE
法定休日変動tinyint00FALSETRUE
超過労働起算日datetime00FALSETRUE
起算曜日tinyint00FALSETRUE
変形労働時間フラグbit00FALSETRUE
同日中契約件数int00FALSETRUE
分岐IDnvarchar1000FALSETRUEデバッグ用
先頭日付変更線time00FALSETRUE
本日開始_契約開始日datetime00FALSEFALSE
本日開始_日付変更線time00FALSEFALSE
打刻時刻datetime00FALSEFALSE
打刻種別tinyint00FALSEFALSE
労働時間強制計上フラグint00FALSEFALSE
週カウントint00FALSEFALSE

チケット

有休をはじめとした休暇の権利や消費を管理するデータ。遅刻や早退の届出書に相当するデータも含む。
勤怠管理システムの自作-チケット

論理名小数桁PKNot
Null
備考
チケットIDint-10TRUETRUE
ユーザーIDint00FALSETRUE
チケットタイプint00FALSETRUE
ポイントdecimal105FALSETRUE通常のチケットは小数1位まで(半休)、調整チケットは小数5位まで入る。調整時に誤差を積み重ねてもポイントに影響が出にくいようにしている。プラス値は権利、マイナス値は権利の消費を示す。1pt=1分。最大値は24時間*60分→1440pt程度。
発効日datetime00FALSEFALSEチケットの存在が公表された日。チケットの使用が宣言された日。「3月20日に、4月1日から6か月間有効な定期券を買った」ってときの3月20日。
有効期限FROMdatetime00FALSEFALSE
有効期限TOdatetime00FALSEFALSE
締処理日datetime00FALSEFALSE月報締め処理日。既に給与計算に使われているだろうから、変更不可。
利用日datetime00FALSEFALSEチケットを使用する予定の日、または使用した日。
利用時間FROMdatetime00FALSEFALSE実際に使用した時間。システム内ではこちらを使う。
利用時間TOdatetime00FALSEFALSE
申請時間FROMdatetime00FALSEFALSE申請の時に記入した時間。申請のときだけ使う。ユーザーが参考程度に見る値。
申請時間TOdatetime00FALSEFALSE
権利フラグbit00FALSETRUETrue:権利チケットである。
取消フラグbit10FALSETRUETrue:取り消されている。代休振替・代替休暇振替チケットを取り消したときにtrueになる。代休を「使用しない」
という意思表示の証として使う。
有給フラグbit00FALSETRUETrue:有給である
労働義務有無フラグbit00FALSETRUETrue:労働義務あり。 Falseの場合は有休付与の計算時に「全労働日」から除く。 Falseには代休・代替休暇・特別休暇・休業(天災やストライキ)・公民権の行使などが該当する。
出勤扱いbit00FALSETRUE特別休暇の場合に使う。有休付与時の出勤率計算で「労働したものとみなす」チケットであればtrue。それ以外はfalse。
所定労働時間(分)int00FALSEFALSE時間休の取得日数算出時に使用する。時間休取得時に紐付いている契約の所定労働時間。
メモnvarchar2000FALSEFALSE
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

チケット階層

チケットの親子関係を保持する。閉包テーブルという仕組みを使ってみた。

論理名小数桁PKNot
Null
備考
親チケットIDint00TRUETRUE
子グループIDint00TRUETRUE
深度int00FALSETRUE

チケットテンプレート

チケット手動付与機能用。事前にテンプレートとしてデータを作っておく。

論理名小数桁PKNot
Null
備考
テンプレートチケットIDint-10TRUETRUE
ユーザーIDint00FALSEFALSE
チケットタイプint00FALSETRUE
ポイントdecimal105FALSETRUEチケットテーブルに合わせた桁数。実際には小数1位までしか入らない。
発効日datetime00FALSEFALSEチケットの存在が公表された日。チケットの使用が宣言された日。「3月20日に、4月1日から6か月間有効な定期券を買った」ってときの3月20日。
有効期限FROMdatetime00FALSEFALSE
有効期限TOdatetime00FALSEFALSE
締処理日datetime00FALSEFALSE月報締め処理日。既に給与計算に使われているだろうから、変更不可。
利用日datetime00FALSEFALSEチケットを使用する予定の日、または使用した日。
利用時間FROMdatetime00FALSEFALSE実際に使用した時間。システム内ではこちらを使う。
利用時間TOdatetime00FALSEFALSE
申請時間FROMdatetime00FALSEFALSE申請の時に記入した時間。申請のときだけ使う。ユーザーが参考程度に見る値。
申請時間TOdatetime00FALSEFALSE
権利フラグbit00FALSETRUETrue:権利チケットである
取消フラグbit10FALSETRUETrue:取り消されている。代休振替・代替休暇振替チケットを取り消したときにtrueになる。代休を「使用しない」
という意思表示の証として使う。
有給フラグbit00FALSETRUETrue:有給である
労働義務有無フラグbit00FALSETRUETrue:労働義務あり。 Falseの場合は有休付与の計算時に「全労働日」から除く。 Falseには代休・代替休暇・特別休暇・休業(天災やストライキ)・公民権の行使などが該当する。
出勤扱いbit00FALSETRUE特別休暇の場合に使う。有休付与時の出勤率計算で「労働したものとみなす」チケットであればtrue。それ以外はfalse。
所定労働時間(分)int00FALSEFALSE時間休の取得日数算出時に使用する。時間休取得時に紐付いている契約の所定労働時間。
メモnvarchar2000FALSEFALSE
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE
チケットテンプレート名nvarchar1000FALSETRUEユーザーがテンプレートを識別するための名前。
有効期間年smallint00FALSETRUEテンプレートをもとにチケットを作ったとき、有効期限を決めるための値。有効期限Fromからn年後を有効期限Toとする。実務上は0~2程度の値しか入らない想定。
有効期間月smallint00FALSETRUEテンプレートをもとにチケットを作ったとき、有効期限を決めるための値。
有効期間日smallint00FALSETRUEテンプレートをもとにチケットを作ったとき、有効期限を決めるための値。

チケット予約

レイアウトはチケットテーブルと同じ。
打刻によって利用時間FromやToに値が入る。FromTo両方に値が入ると、正式なチケットになり、チケットテーブルへ移る。
階層構造を持たない。

論理名小数桁PKNot
Null
備考
チケットIDint-10TRUETRUE
ユーザーIDint00FALSETRUE
チケットタイプint00FALSETRUE
ポイントdecimal105FALSETRUEチケットテーブルに合わせた桁数。実際には小数1位までしか入らない。
発効日datetime00FALSEFALSEチケットの存在が公表された日。
有効期限FROMdatetime00FALSEFALSE
有効期限TOdatetime00FALSEFALSE
締処理日datetime00FALSEFALSE月報締め処理日。
利用日datetime00FALSEFALSEチケットを使用する予定の日、または使用した日。
利用時間FROMdatetime00FALSEFALSE実際に使用した時間。システム内ではこちらを使う。
利用時間TOdatetime00FALSEFALSE
申請時間FROMdatetime00FALSEFALSE申請の時に記入した時間。申請のときだけ使う。ユーザーが参考程度に見る値。
申請時間TOdatetime00FALSEFALSE
権利フラグbit00FALSETRUETrue:権利チケットである
取消フラグbit10FALSETRUETrue:取り消されている
有給フラグbit00FALSETRUETrue:有給である
労働義務有無フラグbit00FALSETRUETrue:労働義務あり
所定労働時間(分)int00FALSEFALSE時間休の取得日数算出時に使用する。時間休取得時に紐付いている契約の所定労働時間。
メモnvarchar2000FALSEFALSE
更新日datetime00FALSEFALSE
更新者int00FALSEFALSE

チケット手動付与履歴

チケットを手動で付与した履歴を保持する。このデータをもとに、既に付与済みかどうかを見分ける。チケットを付与した後に取り消したい場合、このデータからチケットを追跡して削除する。

論理名小数桁PKNot
Null
備考
チケットIDint00TRUETRUE付与した結果発生したチケットID
テンプレートチケットIDint00FALSETRUE手動付与の際に使用したチケットテンプレートのID
チケット付与日datetime00FALSETRUEチケットを付与した際の基準日
付与枚数int00FALSETRUE同時に付与した枚数。チケットを集計しても良いのだが、履歴を表示する都合上、ここで持った方が簡単だから。
ユーザーIDint00FALSETRUEチケットの付与対象になったユーザーID。処理を簡単にするため、ここで値を保持する。

有休付与実績

ユーザーマスタと紐付く。ユーザーの登録時点で6か月後の付与予定を書き込む。それ以降は有休の付与を行う度に値を更新する。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE
起算日datetime-10FALSETRUE出勤率計算時に使用するカウント開始日
付与予定日datetime-10FALSEFALSE次回の有休付与日。今回出勤率不足により付与されない場合も、有休が発生したであろう日付を書き込む。
付与可能性tinyint-10FALSETRUE未使用
出勤日確定日付datetime-10FALSEFALSE未使用
チケット付与済bit00FALSETRUE
チケット繰越済bit00FALSETRUE有休チケットの繰り越しが完了しているかどうか。付与予定日に繰り越しが行われる。バッチが途中で失敗し再実行した場合に多重処理を防ぐための工夫。
出勤率decimal31FALSEFALSE未使用

有休付与日数マスタ

有給休暇の付与日数を管理するテーブル。
このテーブルは法律改正時のみ変更される。ユーザーは操作不可。

当システムにおいて「有給休暇」とは労働基準法で最低限与えるように定められている日数だけを指します。
法律の要件を上回る分の休暇は「季節休暇」という名前で管理します。
勤怠管理システムの自作-チケットの種類

※設計ミス
法改正により有休付与日数が変わったとき、適切にデータを書き換えるタイミングがありません。「データの有効期間」を示すカラムを持たせておくべきでした。

論理名小数桁PKNot
Null
備考
付与日数定義IDint00TRUETRUE
継続勤務月数int-10TRUETRUE
週所定労働日数int-10TRUETRUE
年所定労働日数Fromint-10FALSEFALSE週以外の期間によって労働日数が定められている場合に使用する。この列は飾り。ソース内で日付→週に変換して検索する
年所定労働日数Toint-10FALSEFALSE
付与日数int-10FALSETRUE

監視設定マスタ

月報の実働時間や残業時間が一定の数値に達した場合にアラートを発するための設定。バッチ処理内でこのテーブルの値を参照する。アラートが発生した場合、通知テーブルにデータを登録する。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE監視者のユーザーIDを持つ
監視対象int00TRUETRUEどんな項目を監視するかを持つ
境界値decimal201TRUETRUE
部下のみbit00FALSETRUEtrue:監視者が属するグループと、配下のグループに属するユーザーのみを対象に監視する。
false:全ユーザーを対象に監視する。

通知

システム内で発生した通知を保持しておくテーブル。
月報が却下された場合の通知や、労働時間が一定値を超えた場合のアラート通知などが入る。

論理名小数桁PKNot
Null
備考
ユーザーIDint00TRUETRUE通知を受け取る人
監視対象int00TRUETRUEコード値を保持
境界値decimal201TRUETRUE労働時間が40時間を超えた場合であれば「40」の数値が入る。
参照先IDint00TRUETRUE通知の元になったユーザーID(勤務時間アラート時)、月報ID(却下時)。アプリ内でうまい具合に解釈する。
対象年int00TRUETRUE勤務時間アラートの元になった月報の年
対象月int00TRUETRUE勤務時間アラートの元になった月報の月。1年間の集計である場合は0
通知日時datetime00FALSETRUE通知データが登録された日時。複数の通知で同じ値になる場合がある。
タイトルnvarchar1000FALSETRUE通知のタイトル、メールの件名として使う文字列
本文nvarchar10000FALSETRUE通知の本文
参照先機能int00FALSEFALSE参照先画面を判定するための値。例えば月報が却下された場合の通知であれば、月報参照画面と対応するIDを持つ。
既読フラグbit00FALSETRUEtrue:既読

標準産業分類

総務省が公開している日本標準産業分類のデータ。事業場の入力時に参照する。労働基準監督署へ提出する書類に記載する値として使う。

論理名小数桁PKNot
Null
備考
改定番号int00TRUETRUE改定番号が最大のデータのみを取得する。
大分類コードnvarchar50TRUETRUE
中分類コードnvarchar50TRUETRUE
小分類コードnvarchar50TRUETRUE
細分類コードnvarchar50TRUETRUE
項目名nvarchar1000FALSEFALSE
タイトルとURLをコピーしました