Object Ontology

From AgileApps Support Wiki

Objects and Records

In the platform, a simple object is essentially a database table on steroids. The data components of an object include:

  • The database table, with records (rows) and data fields (columns).
  • Lookup fields that point to information in other table-objects.
  • The record owner -- the user who created the record, or person to whom the responsiblities of ownership have been delegated.

Operations include:

  • Customizable web forms for data entry and update.
  • Data policies, or procedures to take on specific events (when data is going into or out of the table) or at specific times.

Object Varieties

There are two kinds of objects:

  • System Objects are pre-defined objects that come with the platform. For example: User, Team, Role.
  • Custom Objects are created when applications are developed or installed.
Note:
Most users will never be aware that there is a difference between those two kinds of objects. Even for developers, the distinction is often minor. In general, Custom Objects are more customizable. They allow subclassing,and provide a variety of other capabilities. System Objects, on the other hand, often provide specific functionality that is available only in those objects.

There are also two flavors:

  • The term object designates an entity that is built on a database table, with all of the features that the platform provides for manipulating them: Forms, Validations, Spreadsheet (grid) views, and more. Each table (object) has columns (fields), each row has cells, and each cell has exactly one value. That value may be an ID (foreign key) that lets you select records from a different table (connect to other objects via lookup fields). The field value may even be a comma-separated list. But when managing an object record, you are in effect dealing with a set of single values for a row in a spreadsheet.
  • A Composite Object, on the other hand, is a combination of Related Objects--objects that are connected by lookup relationships. For example, a customer has many orders and a choice of mailing addresses, while every order has a mailing address chosen from the list.

Depending on how you write your application, you can work with either simple objects or composite objects—-whichever makes the task easier.

Object Relationships

Related Objects are defined by lookup field relationships between object-tables:

  • 1:1 (unusual)
  • 1:many
  • many:1
  • many:many