2012-01-11 15 views
0

私は、誰かがデータベースに従業員の勤務時間を一日に保存する最良の方法を表示したり教えたりできるかどうか疑問に思っていましたか?SQLデータベースデザインの従業員タイムシート

現時点では、私はTimeSheetテーブル{timesheetID, employeeID, date, starttime, endtime}を考えていましたが、テーブルが本当に素早く成長する可能性がありますか?

3ヵ月分のエントリを保存し、残りの部分をアーカイブテーブルに移動するか、単に他のエントリを削除することができますか? (おそらく悪い習慣)。だから私は誰かが私にデータベースの従業員のタイムシートを管理する別の方法を説明できるかどうか疑問に思っていた。

ありがとうございます。

+0

私は記録時間をDATETIME値のペアとして、またはDATETIMEと時間(時間単位)として機能させることをお勧めします。 "date"、 "starttime"、 "endtime"のみを記録すると、シフトが深夜以降に終わった貧しい従業員の労働時間を計算するのは難しいでしょう。 – pilcrow

+0

あなたは何人の従業員を雇いますか? 1万人の従業員、年間200日の作業、1日あたり5つのエントリを追加すると、年間でそのテーブルの100万行を見ています。まともなリレーショナルデータベースシステムのための**何も**ありません! 1日あたりの百万** **はちょっとした挑戦かもしれない..... –

答えて

1

あなたのアプローチは良いです。

時期尚早に最適化しないでください。

インデックスは非常に参考になります。

0

ご使用のテクノロジに若干依存し、予期したボリュームにもう少し依存します。

現代のRDMSは、何千もの何百万ものレコードを管理する目的で作られています。テーブルを適切に設計して索引を付けると、気になることがなくなる前に長い道のりがあるようです。

技術の選択は、会社の規模によって異なります。これが小規模な業務であれば、テーブルの成長は最小限の懸念事項であり、実際にはあなたの人事部門です。とにかく一定期間後に電子記録のアーカイブ、保管、削除を要求する記録保持ポリシーを持つことがあります。

関連する問題