Modeling many to many often poses a challenge. This blog intent is to deal with this and at the same time demonstrate how the practical implementation will be in Master Data Services.
It is widespread mistake to look at Employee as a sub-type of Person. After all, a large number of the people you want to keep track of are in fact employees. A person is not inherently an employee. He or she only becomes an employee by entering into a relationship with a company. The quality of being an employee, then, is an aspect of a relationship, not of an entity.
The reason for this misperception of modeling is to be found in converting verbal expression into a data model: while many of the nouns sets the context of an object with by its relationships to other objects.
In the example below is a Person employed by one or more Organizations, each Organization may be the employer of one or more people. This implies Employment as an intersection between organization and person. The fact that an employment is the basis of one or more position assignments throws us into an intersection where a position assignment intersects employment and position.
Looking on the payload of the entity Employment it will it include data such as "Employment date", "Termination date" and so forth. Where the entity Person carries "Social security number" eg.
The Example in MDS is to follow