Relationships play a fundamental role in the data model performance and sizing, and definitively help the user to have a business picture of the solution that has been implemented. Relationships inconsistencies may lead to severe reporting error as much as exception handling issues : that's why relationships must be designed with the highest accuracy.
Different Tools are available to facilitate the Relationships design and consistency verification and fix when required .
Let's take this simple hierarchy
The "Scan Bottom Up" Action highlights (in red) those relationships with children-orphans that means children without parent (e.g. Customer without City or City without Region)
The "Scan Top Down" Action highlights (in red) those relationships with parent-orphans that means parent without children (e.g. City without Customer or Region without City )
The "Fix Relationships" Button performs like a Relationship filler automatically creating Entity members and assigning entities relationships. When executed it contemporary fixes the Bottom Up and Top Down relationships ; please see the samples below.
When executed it creates a Parent Element (Not Available) for any hierarchy level above the "orphan" entity an links it to all the Children-Orphans.
In the above hierarchy add a Customer Item without any City or Region.
Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :
> creates the "Not Available" City Item and links it to the new Customer
> creates the "Not Available" Region item and links it to the new Customer
> links the "Not Available" City Item with the "Not Available" Region item
When executed it creates a Child Element for any hierarchy level below an links it to all the Parent-Orphans. Each child is unique and linked to its Parent.
In the above hierarchy add a Region Item without any City or Customer. (e.g. UR Canton Uri)
Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :
> creates the "» UR" City Item and links it to the new Region
> creates the "»» UR" Customer item and links it to the new City ">UR" and to the new Region (UR)
> links the "» UR" City Item with the "UR" Region item
When executed it perform both of the previous actions.
In the above hierarchy add a City Item without any City or Customer. (e.g. NE Canton Neuchatel)
Click in the Relationship Control Panel (Database Design) the Button Fix Relationships. The Action :
> creates the "» NE" Customer Item and links it to the new City
> creates the "Not Available" Region item and links it to the new City
> links the "» NE" Customer Item with the "Not Available" Region item
Notes
The number of "»" in front of the Child Code identifies the Level of the Hierarchy (from Top Down) when the fix happens. If you have a three Levels Hierarchy and you add an element in the top (Cod A) its Child at the root of the Hierarchy is coded »»»A.
Clicking on the Button performs all the Fixes mentioned above independently from their nature
If a "not available" item is already in any level of the Hierarchy it is recognized and used to Fix Bottom Up relationships
The Fix Relationship Action is also available as Procedure Command in the Data Reader Tab as enhancement of the traditional Normalize Command.
To Create a Normalize Command choose from the Drop Down List the Hierarchy upon which the Normalize should work. The option ALL (hierarchies) is also available.
The Command will automatically execute the Fix Relationship Actions as per the above description.
If you like to execute the Normalize without the Fixing Relationship Action please tick the check-box "Do not fix missing relationships".
Existing Procedures have this option on by default.