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. |
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. |