Diamond Structures in DDOs

Data Dictionary structures can support "diamond" relationships. A diamond relationship is one where a parent table can be reached from a child table by more than one path. Consider the following example:

A   B   C

 \ / \ /

  D   E

   \ / \

    F   I

   / \ /

  G   H

In this example, there are two diamond relationships (Tables B and E are the tops of each diamond). When table F finds a record, there are two paths it can use to find related Parent B ( F—>D—>B or F—>E—>B). This kind of structure is supported as long as the relationships are proper. If Record B can be reached by two paths, then you must make sure that the record that will be found in B will the same using either path. In other words, the records in D and E must have the same parent in B. Similarly, the records in F and I must have the same parent in E. As long as these rules are obeyed, diamonds are fully supported. The updating structure of your data dictionaries should reflect the diamond structure. The redundancy in updating links will not cause any problems; DDOs will take this redundancy and optimize it.

See Also

Creating Data Dictionary Object Structures