Teoman Haliloglu wrote: > ... in my case a person is not allowed to have two roles at a specific time, > as all the role types are in fact different employment times, Employment times or did you mean types? Both sound like something with Role="employee". So they would either be an attribute of the Employee class or a subclass of Employee.
> and a person cannot be employed at two organizations at the same time. That doesn't model the real world, at least not in the USA. > So I'll simply add a constraint that a > person have only one active role. That can work. > Do you think it is a wise idea to implement two base structures, simple many > to many and time-framed many-to-many for future use? (ManytoManyLeg, > ManyToManyCross, TimedManyToMany classes with all utility functions and base > queries etc.). Then to simply inherit those classes accordingly for other > many to many implementations? Or is it better to go case by case? Case-by-case seems more straightforward. What is the abstraction? It sound like you are modeling a data storage system rather than real world objects.
