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. |
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.
|
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.
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. |
CMS_WebPageAcl | Stores information about content tree sections to which a specific set of page permissions is applied. |
CMS_WebPageAclRole | Stores information about which roles are present in which sets of page permissions. |
CMS_WebPageAclRolePermission | Stores specific page permissions granted to roles. |
The following diagram illustrates the relationship between entities composing a single page. Only the most important columns are highlighted.
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.). |