НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
79 of 182 menu

Таблица field_revision_field_data

Таблица field_revision_field_data является частью системы полей Drupal и предназначена для хранения ревизий данных полей. В отличие от основной таблицы field_data_field_data, которая содержит только текущие (активные) версии данных, эта таблица сохраняет все исторические версии значений полей, что позволяет реализовать функционал управления ревизиями контента.

Поля

Поле Тип данных Описание
entity_type varchar(128) Тип сущности, к которой относится поле (например, node, user, taxonomy_term).
bundle varchar(128) Название бандла (типа материала) сущности, к которой относится поле.
deleted int Флаг удаления: 0 - запись активна, 1 - запись удалена.
entity_id int Идентификатор сущности, к которой относится поле. Внешний ключ к основной таблице сущности.
revision_id int Идентификатор ревизии сущности. Внешний ключ к таблице ревизий сущности.
language varchar(32) Язык содержимого поля (например, und для неопределенного языка, en, ru).
delta int Порядковый номер значения для полей с множественными значениями (начинается с 0).
field_data_value longtext Основное значение поля (текстовые данные).
field_data_format varchar(255) Идентификатор формата текстового значения. Ссылается на таблицу filter_format.

Как это работает

Когда в Drupal включено управление ревизиями для определенного типа контента, система сохраняет каждую версию изменений. При создании новой ревизии узла (ноды) или другой сущности, все значения полей также сохраняются в соответствующих таблицах ревизий полей.

Таблица field_revision_field_data хранит исторические версии текстовых полей. Каждая запись связана с конкретной ревизией сущности через поля entity_type, entity_id и revision_id. Это позволяет откатываться к предыдущим версиям контента и просматривать историю изменений.

Система использует комбинацию entity_id + revision_id + language + delta в качестве уникального идентификатора для каждого значения поля в каждой ревизии.

Поле deleted помечает записи, которые были удалены из текущей ревизии, но сохраняются для истории. Это важно для корректного отображения предыдущих версий контента.

Пример SQL-запроса

Получить все ревизии текстового поля для определенной ноды:

SELECT frfd.revision_id, frfd.delta, frfd.field_data_value, frfd.field_data_format FROM field_revision_field_data frfd WHERE frfd.entity_type = 'node' AND frfd.entity_id = 123 AND frfd.deleted = 0 ORDER BY frfd.revision_id DESC, frfd.delta ASC;

Смотрите также

  • таблицу field_data_field_data,
    которая хранит текущие версии данных полей
  • таблицу node,
    которая содержит основные данные нод
  • таблицу node_revision,
    которая хранит ревизии нод
  • таблицу file_managed,
    которая управляет файлами в Drupal
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить