Changes between Version 2 and Version 3 of DeveloperGuidelines/PersonEntityModel
- Timestamp:
- 03/07/12 20:58:59 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DeveloperGuidelines/PersonEntityModel
v2 v3 6 6 == Introduction == 7 7 8 We start with an obviously simple (read: small) set of person entities:8 We start with an obviously simple (read: ''small'') set of person entities: 9 9 10 10 [[Image(pe_hierarchy1.png)]] 11 11 12 Each of these entities can define a number of roles which affiliated entities can have: 12 === Roles === 13 14 Each of these entities can define a number of roles by which other entities can be ''affiliated'' with them: 13 15 14 16 [[Image(pe_hierarchy2.png)]] 15 17 16 Now we link the respective entities to the roles, which defines an already pretty complex relationship network: 18 === Affiliation === 19 20 If we link the ''affiliated'' entities to these roles, then we get an already pretty complex network of relationships: 17 21 18 22 [[Image(pe_hierarchy3.png)]] 19 23 20 Some of these relationships define a hierarchy, while others don't: 24 === Hierarchy === 25 26 Some affiliations define a hierarchy (in the sense of "reporting units" or "organisational units"), while others don't: 21 27 22 28 [[Image(pe_hierarchy4.png)]] 23 29 24 This hierarchy defines ancestor paths among the person entities: 30 === Ancestor Paths === 31 32 To analyze this hierarchy, we look at the ancestor paths from one entity to another entity: 25 33 26 34 [[Image(pe_hierarchy5.png)]] 27 35 28 I f we remove the roles, this becomes more obvious:36 It becomes a little bit more obvious if we remove the roles from the diagram: 29 37 30 38 [[Image(pe_hierarchy6.png)]] 31 39 32 Now we can make the actual "hierarchy" visible by moving each entity to a certain "hierarchy level": 40 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. 41 42 === Hierarchy Levels === 43 44 To make the actual "hierarchy" visible, we need to move each entity to a particular "hierarchy level": 33 45 34 46 [[Image(pe_hierarchy7.png)]] 35 47 36 As you can see, "Person Y" belongs to two different organisations here - with two different ancestor paths.48 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. 37 49 38 50 ----