2012-02-09 15 views
0

私はプロジェクト/従業員/時間アプリケーションを開発しようとしており、データベース設計が必要です。私はしばらくそれをしていないので、私は良いアドバイスを求めています。Mysqlデータベース設計のアドバイス

基本的に、このアプリケーションは、従業員がプロジェクトで何時間作業したかを追跡することです。従業員は毎日システムにログインして、自分が担当するプロジェクトに費やす時間を節約する必要があります。週末には、タイムシートを提出し、各プロジェクトで作業した合計時間を表示します。

たとえば、従業員Aは2/11/12にプロジェクトAで3時間、従業員BはプロジェクトAで2時間、プロジェクトBで1時間2/9/12で作業します。管理者は、2人の従業員がプロジェクトAで5時間、プロジェクトBで1時間をログインしたことを見ることができます。また、管理職は従業員Bがすべてのプロジェクト(AおよびB)に費やした時間も確認できます。私が念頭に置いているデータベーステーブルは

EMPLOYEES 
id/name/password/manager_privi 

PROJECTS 
id/project_name/client/hours/date 

HOURS 
employee_id/project_id/date 

私が必要なものはこれで十分ですか?助けてくれてありがとう。

+0

十分です:)最低でも、HOURSテーブルの下に列が表示されるべきでない場合は、 – Vyktor

+2

でなければなりません。 –

+0

おそらくクライアントテーブルですか? –

答えて

1

質問で割り当てた時間と日付の列について少し混乱しています。そのため、より具体的な名前を使用します。これが私の見方です。

PKは引用符

CLIENTS("id", name) 

の間でそれが参照されたされ、行方不明になった:)

EMPLOYEES("id", name, password, manager_privi) 

ないmanager_priviが何であるかを確認し...それは従業員のマネージャかもしれ?勤務日

HOURS("employee_id, project_id, worked_date", hours) 

と混合しないようにするために2で日付を分割さ

PROJECTS("id", project_name, client_id, start_date, end_date) 

は、それが複合キーであることに注意してください。また、project_idとworked_dateに索引を作成して処理速度を上げる必要がありますが、設計とは関係ありません。 従業員は、同じプロジェクトに対して同じ日付のレコードを2つ持つことはできません。この場合、従業員が同じ日付とプロジェクトのために時間を追加しようとすると、時間数を更新する必要があります。

希望します。

+0

nice助けてくれてありがとう。 – FlyingCat

関連する問題