Posted under » Drupal updated on 24 Mar 2025
Drupal's database schema is more complicated because it has revisions. Drupal is a CMS that was designed as a news or publishing platform. So the editor can keep track of the changes to the article and have several layers of approval process before the content is published.
I will not cover all the tables but only regarding content.
Node table is the heart of it all. A node has nid, vid, type, uuid, langcode where v stands for version.
The purpose of node table is to hold the UUID.
This is an extension of the node table. Thus you will get the same nid, vid and type in node and node_field_data.
This is an extension of the node_field_data table. However, the field names are changed. You will get the nid (entity_id), vid (revision_id) and type (bundle) in node_field_data and node__body.
Note that there are many node__tablename. These are the fields similar to node__body. For example. node__field_image
This is something like node__body. However, comments are like sub node or another module. The contents are inside the comment table.
Drupal revision tables »