Link fields are pointers that create inter-object relationships. All relationships are bi-directional, therefore every link has an
inverse link that defines the same relationship from the opposite direction. A link and its inverse link can be in the same table or they can reside in different tables. An example link declaration in XML is shown below:
<field name="MessageAddress" table="
Address" type="LINK" inverse="
Messages"/>
In this example, the link field MessageAddress is owned by the
Participant table and points to the
Address table, whose inverse link is called
Messages. The table to which a link points is called the link’s
extent.
Link fields are always MV: the collection property, if set, is ignored. A link’s values are IDs of objects that belong to its extent table. Relationships are created or deleted by adding IDs to or removing IDs from the link field. Like MV scalar fields, link values are
sets, hence duplicates are ignored.
<field name="DirectReports" table="Person" type="LINK" inverse="
Manager"/>
<field name="Manager" table="Person" type="LINK" inverse="
DirectReports"/>