The Application Data Model

The application data model of IBM OpenPages® is designed using object oriented techniques for the purpose of maintainability, cost and extensibility.

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.

The core of the database design consists of the following tables:
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.
Figure 1. Core Database ER Diagram
Core database ER diagram

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.
Note: You should not write reports against the core database because it will affect your system performance.