Content item database structure

This page introduces the database structure of various system entities used to manage content in Xperience.

Content items

Content items, managed via the Content Hub application and the IContentItemManager management API, are composed of the following entities:

Database table

Description

CMS_ContentItem

Stores system information about the content item.

  • The item’s content type is stored by the ContentTypeId column.
  • The ContentItemIsReusable flag determines whether the item can be linked across multiple channels (i.e., is a reusable content item managed via the Content Hub application) or is tied to a specific channel (i.e., a page or an email).

CMS_ContentItemCommonData

Stores content item properties and data of Page Builder widgets (for page content items) and reusable field schema fields.

The table stores a separate record for each language variant of an item. 

CMS_ContentItemLanguageMetadata

Contains data about the item displayed within the admin UI, such as the display name, creator, and last updated/modified date.

The table stores a separate record for each language variant of an item.

ContentItemData tables

Store content type fields. Created together with the corresponding content types.

The tables use the following naming structure: <ContentTypeNamespace>.<ContentTypeName>

For example, a DancingGoat.Coffee content type has a table named DancingGoat_Coffee. The table’s columns correspond with the fields defined for the content type.

  • Records in the data tables are bound to content items via the CMS_ContentItemCommonData table.
  • The table stores a separate record for each language variant of an item.

CMS_ContentItemReference

Stores references between items, enabling content composition.

When managing content items in code, the API abstracts work with all these entities behind a conventional CRUD manager (IContentItemManager).

Similarly, when consuming the data – to display on a website, for example – the content item query API merges all entities into a single record from which all data and meta information can be extracted. 

The following diagram illustrates the relationship between entities composing a single content item. Only the most important columns are highlighted. 

Content item database composition

Pages

Pages, managed via website channel applications and the IWebPageManager API, extend the content item structure with additional entities that provide web-specific, contextual data and metadata.

Database table

Description

CMS_Channel

Unlike standalone content items, pages must be tied directly to website channels.

CMS_WebsiteChannel

Stores data about the website channel – main domain, primary language, default cookie level, etc.

CMS_WebPageItem

Stores metadata about pages, such as the location and order in the page content tree (TreePath and Order columns).

CMS_WebPageUrlPath

Stores the relative URL path to pages.

The table stores a separate record for each language variant of a page. 

The following diagram illustrates the relationship between entities composing a single page. Only the most important columns are highlighted. 

Page database entity composition

Emails

Emails, managed via email channel applications, extend the content item structure with additional entities that provide email-specific, contextual data and metadata.

Database table

Description

CMS_Channel

Unlike standalone content items, emails must be tied directly to email channels.

EmailLibrary_EmailChannel

Stores data about the email channel – sending domain, language, etc.

EmailLibrary_EmailConfiguration

Stores the configuration of individual emails (email name, assigned template, etc.).

EmailLibrary_SendConfiguration

Stores the sending configuration of individual regular emails (scheduled send date, etc.).

Email content item database entity composition