Different types of tables can be used at database level in One Identity Manager.
| Table type | Description | 
|---|---|
| Simple table | Simple tables are the most common form for storing data. The following columns are defined for simple tables: 
 | 
| Many-to-many table | Many-to-many or M:N tables contain the relationships between two other tables. The following columns are defined for many-to-many tables: 
 Many-to-many tables are also called assignment tables in this documentation. | 
| Many-to-all table | Many-to-all or M:all tables are a special type of assignment tables that were developed for One Identity Manager. M:all tables are implemented if part of an assignment (all) can reference different tables, meaning dynamically determined. Valid tables can be limited in this way. For example, the owner of a group can be a user account or a group. Furthermore M:all tables are used if additional information about an assignment is mapped, for example, an assignment's validity period. The following columns are defined for M:all tables: 
 You can define more foreign keys and dynamic foreign keys. These columns must be defined as NULL. | 
| Work tables | Work tables are used to store data for which objects cannot be created. No primary key is required for work tables. However, you can define up to two primary keys. | 
| Column | Description | 
|---|---|
| Primary key | 
 | 
| XObjectKey | If objects are generated from the table through the object layer, the table must have an object key column. The object key (XObjectKey) is a unique key, which is capable of referencing every object in the database. XObjectKey syntax: <Key><T>TableName</T><P>PrimaryKeyOfRow</P></Key> with: 
 An additional <P>SecondPrimaryKeyOfRow</P> is used for two column primary keys. The order in which columns used in the XObjectKey are sorted depends on the foreign key columns identifiers (alphabetical order). Example: PersonInProfitcenter table <Key><T>PersonInProfitCenter</T><P><UID_Person></P><P><>UID_Profitcenter</P></Key> PersonInDepartment table <Key><T>PersonInDepartment</T><P><UID_Department></P><P><>UID_Person</P></Key> | 
| Foreign key | 
 | 
| Dynamic foreign key | 
 | 
| XDateInserted | The columns contain information about which users made changes at what times. The columns must always exist together. | 
| XDateUpdated | |
| XUserInserted | |
| XUserUpdated | |
| XTouched | This column contains an element's processing status. The processing status is used for creating custom configuration packages. | 
| XMarkedForDeletion | This column defines whether the object is marked for deletion. The columns exists when: 
 | 
| XOrigin | In order to determine the origin of an assignment, a XOrigin column is defined in a many-to-many or a many-to-all table. The individual bit positions provide the origin of a membership. For detailed information about calculation of assignments, see the One Identity Manager Identity Management Base Module Administration Guide. | 
| XIsInEffect | 
 For detailed information about calculation of assignments, see the One Identity Manager Identity Management Base Module Administration Guide. | 
| XDateSubItem | This column contains the change date for dependencies and is required in order to take membership changes in a target system into account during synchronization and provisioning. For detailed information about synchronizing and provisioning memberships, see the One Identity Manager Target System Synchronization Reference Guide. | 
