wiki:DeveloperGuidelines/PersonEntityModel

Version 3 (modified by Dominic König, 10 years ago) ( diff )

--

Person Entity Model

The Person Entity Model defines a framework for the modelling of person-related entities like organisations, teams and other groups - and of course persons. It includes a generic model for affiliation, which shall be introduced here.

Introduction

We start with an obviously simple (read: small) set of person entities:

Roles

Each of these entities can define a number of roles by which other entities can be affiliated with them:

Affiliation

If we link the affiliated entities to these roles, then we get an already pretty complex network of relationships:

Hierarchy

Some affiliations define a hierarchy (in the sense of "reporting units" or "organisational units"), while others don't:

Ancestor Paths

To analyze this hierarchy, we look at the ancestor paths from one entity to another entity:

It becomes a little bit more obvious if we remove the roles from the diagram:

These paths can easily be expressed as tuples of IDs, e.g. for Person Y we have two paths [4,1] and [5,2], and for Person X we have [5,2] and [2]. Apparently, Person Y is affiliated with two different organisations here.

Hierarchy Levels

To make the actual "hierarchy" visible, we need to move each entity to a particular "hierarchy level":

Due to the heterogenous nature of this network, the "hierarchy" is not universal, but rather limited to each path - i.e. it isn't clear whether a "team" is higher in the hierarchy than a "facility" or vice versa, but within each path it becomes explicit.


BluePrints

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.