Question

J'ai un mal fou à trouver un bon moyen de stocker ces données dans une base de données.

La version d'Excel actuelle (de simples) ressemble à quelque chose comme ceci:

http://i.stack.imgur.com/BEZOw.png

Le personnel et le client ont également des données supplémentaires qui leur sont associés, il est donc logique d'utiliser une relation de clé étrangère là-bas. Cependant, je ne suis pas sûr comment stocker les données heures. Il est évident que vous pourriez faire une colonne pour chaque période mais temps, cela semble une approche très pléthorique.

Je pense alors que chaque « cellule » qui contient des données heures peut être représentée comme ceci:

http://i.stack.imgur.com/4VTXQ.png

Cependant, cela semble être l'état-major et les valeurs clés du client sont stockés trop de fois. Je ne l'ai jamais conçu une base de données appropriée avant et apprécierais beaucoup des suggestions.

* Désolé pour ne pas lier directement les images, je ne représentant pas assez sur ce sous-site

Était-ce utile?

La solution

Vous voulez avoir quelque chose comme ceci:

DRE

Cela vous permet d'avoir un certain nombre de périodes de travail par membre du personnel et le client et vous donne les détails de qui a travaillé pour qui et combien de temps (sans parler quand - ce qui est également très important)

Autres conseils

J'utiliser un minimum de deux tables pour le faire. Le UserID sera la référence à vos tables utilisateur.

CREATE TABLE TimeSheet(
    [ID] [int] IDENTITY(1,1) NOT NULL,  
    [UserID] [int] NOT NULL,
    [StartDate] [datetime] NOT NULL,
    [EndDate] [datetime] NOT NULL)

CREATE TABLE TimeSheet_Detail(
    [ID] [int] IDENTITY(1,1) NOT NULL,  
    [TimeSheetID] [int] NOT NULL,
    [Hours] [float] NOT NULL)   

Quelque chose comme ceci:

Employees { Staff } KEY { Staff } ;

Clients { Client } KEY { Client } ;

StaffAssignments { Client , Staff } 
   KEY { Client , Staff } 
   FOREIGN KEY { Client } REFERENCES Clients ,
   FOREIGN KEY { Staff } REFERENCES Employees ;

Timesheets { Client , Staff , Sequence , TimeGranule } 
   KEY { Client , Staff , Sequence } 
   FOREIGN KEY { Client , Staff } REFERENCES StaffAssignments ,
   CONSTRAINT Sequence >= 1 AND Sequence <= 55 , 
   CONSTRAINT TimeGranule > 0 ;
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top