The Application Data Model
The OpenPages object model is highly configurable because it consists of object types, properties of those objects and the allowable relationships between these object types.
- RESOURCE
- Contains an instance of each object created in the system.
- RESRELATIONSHIPS
- Contains all relationships between objects in the system.
- ASSETTYPES
- Contains definitions of the allowable content type (object types) in the system.
- ASSETTYPESBUNDLEDEFS
- Contains the relationships between Asset Types and BundleDefs.
- BUNDLEDEFS
- Contains field groups attached to an object.
- PROPERTYDEFS
- Contains the fields attached to an instance of an object.
- PROPERTYVALS
- Contains the field values attached to an instance of an object.
Through these generic defined tables, any type of object can be created in the OpenPages database. This gives our customers the ability to extend existing system objects or add new objects with their own definitions.
There are many other tables used in support of these tables, but these comprise the fundamental tables required to create objects in OpenPages.
The advantages of this database design can be seen in that a small set of Java™ classes can create and access any object in the database. The disadvantage to this design is that no commercial reporting tool can be used to generate reports from this design for the following reasons:
- The relationship between the RESOURCE and RESRELATIONSHIP table is recursive.
- To create a report on an object, many tables need to be joined. Eventually this exceeds the limits of a reporting tool.
- To report from these tables often requires the database designer's knowledge of how they were constructed.