2012-02-09 4 views
0

J'essaye de développer une application de projets/employés/heures et ai besoin d'une conception de base de données. Je ne l'ai pas fait depuis un moment alors je cherche de bons conseils. Fondamentalement, l'application est de suivre combien d'heures les employés ont travaillé sur les projets. Les employés doivent se connecter au système tous les jours pour mettre les heures qu'ils consacrent aux projets sur lesquels ils travaillent. À la fin de la semaine, ils soumettent la feuille de temps et montrent le nombre total d'heures travaillées pour chaque projet. Par exemple, l'employé A travaille 3 heures sur le projet A le 11/02/12 et l'employé B travaille 2 heures sur le projet A et 1 heure sur le projet B le 2/9/12. Le manager peut voir les 2 employés ont passé 5 heures sur le projet A et 1 heure sur le projet B lorsqu'ils se connectent. Le manager peut également voir combien d'heures l'employé B a dépensé sur tous les projets (A et B). Les tables de base de données que j'ai en tête sontConception de base de données Mysql conseiller

EMPLOYEES 
id/name/password/manager_privi 

PROJECTS 
id/project_name/client/hours/date 

HOURS 
employee_id/project_id/date 

Est-ce suffisant pour ce dont j'ai besoin? Merci pour l'aide.

+0

C'est assez :) Au moins, il devrait être – Vyktor

+2

ne devrait pas la colonne des heures être répertorié sous la table HOURS? –

+0

Peut-être un tableau de clients? –

Répondre

1

Je suis un peu confus au sujet des colonnes d'heures et de dates que vous avez attribuées à la question, donc j'utiliserai des noms plus spécifiques. C'est comme ça que je le vois.

PK est entre guillemets

CLIENTS("id", name) 

Il a été référencé et il manquait :)

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

Je ne sais pas ce que manager_privi est ... peut-il être responsable de l'employé?

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

Splitted la date en deux afin de ne pas mélanger avec la date travaillé

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

Note est une clé composée. Vous devrez peut-être également créer des index sur project_id et working_date pour accélérer les choses, mais cela n'est pas lié à la conception Notez qu'un employé ne peut pas avoir 2 enregistrements pour la même date dans le même projet. Dans ce cas, vous devrez mettre à jour le montant des heures si l'employé essaie d'ajouter plus d'heures pour la même date et le même projet

Espérons que cela vous aide.

+0

sympa. Merci pour l'aide. – FlyingCat

Questions connexes