I have an HR database that lists all Employees. Different types of employees require different kinds of paperwork to be turned in. And like any organization, additional paperwork and requirements are added and subtracted constantly.
I currently have all the Employees in one table by ID. Each employee has 1 paperwork record in a paperwork table with all the paperworkdocuments as their own T/F field. I keep yet another database that links what paperwork is required for each employee type. As you can imagine this is pain to keep updating for changing paperwork.
Here's new structure I thought about, although I'm not sure this is most efficient:
tblEmployee
- EmployeeID
- Employee Type
- Name, etc...
tblPaperworkOptions
- PaperworkOptionID
- Description
- EmployeeType1Required (T/F)
- EmployeeType2Required (T/F)
- EmployeeType3Required (T/F)
- EmployeeType4Required (T/F)
I would then list all paperwork as separate records in the tblPaperworkOptions and put a check next to their EmployeeType if that document was required.
tblPaperwork
- tblPaperworkID
- tblPaperworkOptionID
- tblEmployeeID
- this table would be used to track if they actually have the paperwork turned in. It would create a separate record for each employee for each document turned in by them.
I can then compare the records in tblPaperwork with tblPaperworkOptions to see if they have all the required paperwork based on their employee type.
The thing I'm concerned about is the number of records I will need for tblPaperwork. Also, how to list all the paperwork that is required for an employee on a form so that HR can check off what they have. That check off will create the record in tblPaperwork.
Is there a better way to do this?
Thanks
Brian
I currently have all the Employees in one table by ID. Each employee has 1 paperwork record in a paperwork table with all the paperworkdocuments as their own T/F field. I keep yet another database that links what paperwork is required for each employee type. As you can imagine this is pain to keep updating for changing paperwork.
Here's new structure I thought about, although I'm not sure this is most efficient:
tblEmployee
- EmployeeID
- Employee Type
- Name, etc...
tblPaperworkOptions
- PaperworkOptionID
- Description
- EmployeeType1Required (T/F)
- EmployeeType2Required (T/F)
- EmployeeType3Required (T/F)
- EmployeeType4Required (T/F)
I would then list all paperwork as separate records in the tblPaperworkOptions and put a check next to their EmployeeType if that document was required.
tblPaperwork
- tblPaperworkID
- tblPaperworkOptionID
- tblEmployeeID
- this table would be used to track if they actually have the paperwork turned in. It would create a separate record for each employee for each document turned in by them.
I can then compare the records in tblPaperwork with tblPaperworkOptions to see if they have all the required paperwork based on their employee type.
The thing I'm concerned about is the number of records I will need for tblPaperwork. Also, how to list all the paperwork that is required for an employee on a form so that HR can check off what they have. That check off will create the record in tblPaperwork.
Is there a better way to do this?
Thanks
Brian