Page database structure
The Kentico database stores pages (nodes in the content tree of websites) in several interconnected tables:
Database table |
Description |
CMS_Tree |
Stores:
Contains only one record for each page, regardless of the number of language versions. The table doesn’t store any versioned data. |
CMS_Document |
Stores:
May contain multiple records per page, one for each language version. Some of the page columns are versioned. |
Coupled data tables |
Stores the fields of individual page types. For example, the News page type has the CONTENT_News coupled table with the columns defined for news pages, such as NewsTitle, NewsSummary, NewsText.
|
Page attachments and versions
Database table |
Description |
CMS_Attachment |
Stores files uploaded to the database as page attachments. Includes all types of page attachments:
|
CMS_VersionHistory |
Stores page versions, including older versions and versions that are being edited. When a version is published, the system updates the corresponding records in the CMS_Tree and CMS_Document tables using the data of the version record. |
CMS_AttachmentHistory |
Stores attachments of page versions. The main purpose of this table is to avoid redundancy for page versions that use the same attachments. When a page version is published, the system updates the records in the CMS_Attachment table using the data of the version record. |
CMS_VersionAttachment |
Stores relationships between page versions and their page attachments. |
Products
Products represent merchandise or services in online stores. The system associates product objects (SKUs) with pages representing product types.
The primary product data is stored in the COM_SKU database table.
- Pages representing products are bound to the related SKU through the NodeSKUID column of the CMS_Tree table.
- Most product columns are versioned and covered by workflow (exceptions include the product image, as well as the Track inventory and Available items properties).
- If a product page is available in multiple language versions AND covered by workflow, the versioned product properties are NOT shared between different language versions of a single product. Any updates of the product Price (or other key properties) need to be made separately for each language version.
Page relationships
Database table |
Description |
CMS_Relationship |
Stores records representing relationships between two pages. Used for both:
|
CMS_RelationshipName |
Stores the relationship names (types) defined in the system. |
CMS_RelationshipNameSite |
Binding table that connects relationship names to websites. Each entry indicates that a relationship can be used on a given site. |