So I am trying to create a “Worker” app whose purpose is to store and report on various ‘human resource management’ data.
So right right away I create the Person type which contains very basic info about the worker: name, status, role, etc.
Then each worker person has a Contract so I create a type for that, but encounter the challenge for how to handle contracts that change over time (ex: pay increase from $30/hr to $40/hr). I want to retain the contract history so I can later run reports like: “How much did we pay this person between these dates?”
My current idea is for a Person have multiple Contracts, each with a start and end date, and then the most recent one be associated with the Person as the ‘active contract’ - but can I automatically associate this active contract with the Person? Or am I asking for too much?
The second part of my question is more about data organization: How do you decide when its time to create a new type?
So lets say I want to add info about the persons: skills, availability, location, etc. This is kind of data seems like it can be grouped into a Profile type. But is there any down side - in terms of unnecessary complexity - from separating data into types too early?