従業員クロックインイン/アウトシステム(ウェブサイト)を開発したいと思います。データベース設計 - 従業員クロックインイン/アウトシステム
私は心配二つのことだ:スタッフは昨日から「クロック出力」に忘れてしまったと、彼らはマネージャーに「時計」では、今日、それが必要旗を持っている場合は
を。
スタッフは時間の経過とともに機能するかもしれません。たとえば、時計:月曜日午前11時から午後1時30分(真夜中後)。私はシステムがthayスタッフがクロックアウトするのを忘れてしまったと思ってはいけないと思っています。
- スタッフは1日に何回もクロックしたりクロックを取ります。
はどのようにこの問題を解決し、データベースの設計にどのように改善することができますか?
スタッフテーブル:テーブルを計時
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| password | varchar(50) | NO | | NULL | |
| hourly_rate | decimal(6,2) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
:
+----------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| staff_id | int(11) | NO | | NULL | |
| clock_in_date | datetime | NO | | NULL | |
| clock_out_date | datetime | NO | | NULL | |
+----------------+----------+------+-----+---------+----------------+
これは、人が再びクロッキングする前にクロックアウトしていたかどうかを判断するために、不必要な複雑さを追加します。元のデザインが優れています。 EAVテーブルは避けるべきではありません。 – HLGEM
いいえ、元のものは非常に複雑になり、経験からそれを伝えています。どの初心者も元のデザインになりますが、DBはあなたの希望を報告するものではなく、少なくとも冗長な形式でデータを提供することになっています。迅速な検索のために、統合レポート(イン・アウト)の冗長テーブルを保持することができます。 – shikhar
@shikharあなたは正しいかもしれません。私が投稿したこの質問を見てください。 http://stackoverflow.com/questions/12632302/design-to-represent-employee-check-in-and-check-out –