mslennb
Hmmm. Hypothetically, if you own four different fast food joints, such as Tim Hortons (coffee and sandwiches), and employees may "roam" between the locations, they may be promoted / demoted, and they may move to part-time or to full-time. Does this fit your type of problem?
As a template, you may consider something along the following design...
tblEmployee
EmployeeID
LastName
FirstName
SitePositionID
etc...
Primary key = EmployeeID
Eg.
ID LastName FirstName SitePositionID[tt]
1 Smith John 5
2 Smith Jane 1
3 Doe Malcom 2
4 Lee Nancy 3
5 Lee Henry 4
6 Jackson Mark
[/tt]
tblPosition
PositionCode
Description
Primary key = PositionCode
Eg.
PositionCode Descriptions[tt]
LCook1 Line cook #1
LCook2 Line cook #2
DyMngr Day shift manager
NtMngr Night shift manager
Cash01 Cashier #1
[/tt]
tblSite
SiteCode
SiteLocation
Primary key = SiteCode
Eg.
SiteCode SiteLocation[tt]
Main Main St
TFox Terry Fox Rd
MTer Mother Teresa Ln
[/tt]
tblSitePosition
SitePosID
SiteCode
PositionCode
Primary key = SitePosID
SiteCode + PositionCode indexed as unique
Eg.
SitePosID SiteCode PositionCode[tt]
1 Main LCook1
2 Main LCook2
3 Main DyMngr
4 Main NtMngr
5 Main Cash01
6 Main Cash02
7 TFox LCook1
8 TFox DyMngr
[/tt]
tblEmployeeHistory
EmployeeID
TransactionDate
TransactionCode
SitePositionCode
Comments
Primary key = EmployeeID + TransactionDate + TransactionCode
Eg.
EmployeeID TransactionDate TransactionCode SitePositionID[tt]
4 1/15/2001 Hire 1
4 7/30/2001 Transfer 7
4 2/14/2002 Change 5
4 3/21/2003 Promote 8
6 5/12/2006 Hire 1
6 11/5/2006 Transfer 7
6 4/12/2007 Terminate
[/tt]
So, Nancy Lee was hired 01/15/01, and subsequently was transferred, changed positions and promoted. Likewise, Mark was hired on 5/12/06 and subsequently let go on 4/12/07.
I tried to keep it on the simple side, but it could get a little more complicated. For example, instead of using a different code for each position and location, you may want to keep the total number of positions required. For example, instead of LineCook #1, #2, etc, the number of line cooks required at the Main Street Store is 6. This would be a more normalized solution, but using LCook1, etc would help you visualize things a bit better, perhaps.
Hopefully, this gives you an idea in how you may wish to proceed.
Richard