For part of my database we need to track how people are paid. (i.e. keep a history of what funds paid for what person's "salary"
Design Stipulations:
A person is either paid bi-weekly (wage) or monthly.
A person can only be wage OR monthly at a time, but a wage person could become monthly at some point and vice versa.
Each Month/Pay Period their could be 1 or more funds that go towards a persons "salary"
My first idea is to create separate tables, one for wage and one for monthly and each of those tables has an additional table to keep track of the funds.
This seems potentially wasteful because the "Monthly Funds" and "Wage Funds" Tables are really identical. Also, the "Monthly" and "Wage" tables are basically storing almost the same information.
To combat this I came up with this idea.
This has 2 fewer tables but would require storing the 2 week pay code OR a month in the same field. While this will be a finite dropdown (26 codes + 12 months) Having an OR in a field name is a big No-No.
Anyone have any suggestions? Something I haven't tried?