---
title: Content item database structure
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

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](https://docs.kentico.com/api.md), are composed of the following entities:

| Database table                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CMS\_ContentItem                 | Stores system information about the content item.<br>The item's content type is stored by the **ContentTypeId** column.<br>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](#pages) or an [email](#emails)).                                                                                                                                                                                                                                                                                                   |
| CMS\_ContentItemCommonData       | Stores content item properties and data of Page Builder widgets (for page content items) and [reusable field schema](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/reusable-field-schemas.md) fields.<br>The table stores a separate record for each [language variant](https://docs.kentico.com/documentation/developers-and-admins/configuration/languages.md) of an item.                                                                                                                                                                                                                                                                             |
| CMS\_ContentItemLanguageMetadata | Contains data about the item displayed within the admin UI, such as the display name, creator, last updated/modified date, and also the [content lock](https://docs.kentico.com/documentation/business-users/content-locking.md) status.<br>The table stores a separate record for each language variant of an item.                                                                                                                                                                                                                                                                                                                                                                              |
| _ContentItemData_ tables         | Store [content type fields](https://docs.kentico.com/documentation/developers-and-admins/development/content-types.md). Created together with the corresponding content types.<br>The tables use the following naming structure: **.**<br>For example, a _DancingGoat.Coffee_ content type has a table named _DancingGoat\_Coffee_. The table's columns correspond with the [fields](https://docs.kentico.com/documentation/developers-and-admins/customization/field-editor.md) defined for the content type.<br>Records in the data tables are bound to content items via the **CMS\_ContentItemCommonData** table.<br>The table stores a separate record for each language variant of an item. |
| CMS\_ContentItemReference        | Stores references between items, enabling [content composition](https://docs.kentico.com/guides/architecture/content-modeling/content-modeling-guide.md).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

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](https://docs.kentico.com/docsassets/documentation/content-item-database-structure/CiStructure.png "Content item database composition")

## Pages

Pages, managed via website channel applications and the `IWebPageManager` [API](https://docs.kentico.com/api.md), extend the [content item structure](#content-items) 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](https://docs.kentico.com/documentation/developers-and-admins/configuration/website-channel-management.md) – main domain, primary language, default [cookie level](https://docs.kentico.com/documentation/developers-and-admins/data-protection/cookies.md), 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.<br>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](https://docs.kentico.com/documentation/developers-and-admins/configuration/users/role-management/page-permission-management.md) 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.

![Page database entity composition](https://docs.kentico.com/docsassets/documentation/content-item-database-structure/PageStructure.png "Page database entity composition")

## Emails

Emails, managed via email channel applications, extend the [content item structure](#content-items) 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](https://docs.kentico.com/documentation/developers-and-admins/digital-marketing-setup/email-channel-management.md) – 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.).                                                                                               |

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

![Email content item database entity composition](https://docs.kentico.com/docsassets/documentation/content-item-database-structure/EmailStructure.png "Email content item database entity composition")

## Headless items

Headless items, managed via headless channel applications, extend the [content item structure](#content-items) with additional entities that provide headless-specific, contextual data and metadata.

| Database table       | Description                                                                                                                                                                               |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CMS\_Channel         | Unlike standalone content items, headless items must be tied directly to headless channels.                                                                                               |
| CMS\_HeadlessChannel | Stores data about the [headless channel](https://docs.kentico.com/documentation/developers-and-admins/configuration/headless-channel-management.md) – preview URL, primary language, etc. |
| CMS\_HeadlessItem    | Stores the configuration of individual headless items (headless item name, its headless channel ID, etc.).                                                                                |

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

![Headless content item database entity composition](https://docs.kentico.com/docsassets/documentation/content-item-database-structure/HeadlessStructure.png "Headless content item database entity composition")
