patternMinor
Database to track employee performance
Viewed 0 times
databaseperformancetrackemployee
Problem
This is going to be very basic as I'm a complete newbie when it comes to database design.
I've been tasked with setting up a way to track employee data over a number of months and potentially years. I need to keep track of their Performance, Quality and Attendance on a daily basis but I'm unsure on how to setup my tables so that I don't run into troubles down the line.
At the moment I made a very basic database in Access 2010. I have 2 tables, one holding Employee details (FirstName, LastName, Email, Manager) and one holding Manager details (FirstName, LastName, Email). I've successfully created a relationship between the manager field in the Employee table and the Manager table but I'm at a loss on how to implement the tracking of the actual stats.
How should I go about creating table(s) from now? Should I make a table each for Performance, Quality and Attendance with the primary key as the date? Or should there be a table for each employee? How should I relate the data to each employee and each day so that it doesn't become complicated?
Final goal is to use vb.net to create an application for generating reports if it matters. I don't have a problem with that step but I want to make sure I have a solid foundation first.
Any help appreciated, thanks.
I've been tasked with setting up a way to track employee data over a number of months and potentially years. I need to keep track of their Performance, Quality and Attendance on a daily basis but I'm unsure on how to setup my tables so that I don't run into troubles down the line.
At the moment I made a very basic database in Access 2010. I have 2 tables, one holding Employee details (FirstName, LastName, Email, Manager) and one holding Manager details (FirstName, LastName, Email). I've successfully created a relationship between the manager field in the Employee table and the Manager table but I'm at a loss on how to implement the tracking of the actual stats.
How should I go about creating table(s) from now? Should I make a table each for Performance, Quality and Attendance with the primary key as the date? Or should there be a table for each employee? How should I relate the data to each employee and each day so that it doesn't become complicated?
Final goal is to use vb.net to create an application for generating reports if it matters. I don't have a problem with that step but I want to make sure I have a solid foundation first.
Any help appreciated, thanks.
Solution
I suggest you read up about database normalization. Here is a good starting point: Third normal form
Definitely do not create one table per employee as management of that database structure will soon become too cumbersome and your application will need to be modified every time a new employee is hired.
I do not know what your business rules are, but assuming that Performance, Quality and Attendance all store different types of data (i.e., different column types) then they should be in separate tables. I could not guess at what primary key you should use without knowing what types of data are stored in those tables.
Can you provide more information?
Definitely do not create one table per employee as management of that database structure will soon become too cumbersome and your application will need to be modified every time a new employee is hired.
I do not know what your business rules are, but assuming that Performance, Quality and Attendance all store different types of data (i.e., different column types) then they should be in separate tables. I could not guess at what primary key you should use without knowing what types of data are stored in those tables.
Can you provide more information?
Context
StackExchange Database Administrators Q#3657, answer score: 3
Revisions (0)
No revisions yet.