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.
This is an extension of the node table. Thus you will get the same nid, vid and type in node and node_field_data.
Notice the double __ underscore. It means it is a field in a content type.
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 »