Repository's database storage model differs from its run-time object model. While the run-time object model is designed to accommodate run-time operations conveniently, the database model is designed to accommodate storage efficiently.
To save space in the database, Repository can sometimes store a single copy of a property value, even if that property value describes many object versions. Similarly, Repository can sometimes store a relationship once, even if many different object versions have that relationship.
Repository anticipates which object versions are especially likely to share property values and relationships and which object versions are less likely to. It uses these guidelines:
Similarly, in a single row of the RTblRelships table, Repository can indicate that every object version in a range (of origin object versions) has a relationship to every object version in a range (of destination object versions).
The following table summarizes how Repository stores versions and relationships.
To store | Repository uses |
Objects and object versions | RTblVersions table |
Relationships | RTblRelships table |