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

Таблица field_revision_body

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

Поля

Поле Тип данных Описание
entity_type varchar(128) Тип сущности, к которой относится поле. Например: node (материал), comment (комментарий).
bundle varchar(128) Название типа материала (например: article, page) или пучка сущности, к которому относится поле.
deleted int Флаг, указывающий на удаление данных поля: 0 - не удалено, 1 - удалено.
entity_id int Уникальный идентификатор (ID) сущности (например, ноды или комментария), к которой относится данная ревизия поля.
revision_id int Уникальный идентификатор ревизии сущности. Связывает запись с соответствующей ревизией в базовой таблице сущности (например, node_revision).
language varchar(32) Языковой код содержимого (например, und для неопределенного языка, ru, en).
delta int Порядковый номер (индекс) значения в случае, если поле допускает множественные значения. Для одинарных полей всегда 0.
body_value longtext Основное содержимое поля "Тело" в необработанном HTML или простом тексте, в зависимости от настроек поля.
body_summary longtext Необязательное краткое изложение (аннотация) основного содержимого. Может генерироваться автоматически или заполняться вручную.
body_format varchar(255) Идентификатор формата текстового фильтра (например, full_html, basic_html, plain_text), примененного к содержимому. Ссылается на таблицу filter_format.

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

Когда для типа материала включено отслеживание ревизий и создается новый материал или обновляется существующий, Drupal создает запись в таблице node_revision. Одновременно с этим для каждого версионируемого поля, включая body, создается соответствующая запись в его таблице ревизий (field_revision_%).

Поле body_value хранит основной контент. Поле body_format определяет, какие фильтры обработки текста должны быть применены к этому контенту при его выводе на страницу. Это обеспечивает безопасность (например, фильтрация нежелательных тегов) и правильное форматирование.

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

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

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

Получить все ревизии тела для конкретного материала (ноды) можно следующим запросом:

SELECT fr.revision_id, fr.body_value, fr.body_summary, fr.body_format, nr.title, nr.log FROM field_revision_body fr INNER JOIN node_revision nr ON fr.revision_id = nr.vid WHERE fr.entity_id = 42 AND fr.entity_type = 'node' ORDER BY fr.revision_id DESC;

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

  • таблицу field_data_body,
    которая хранит актуальные версии данных поля body
  • таблицу node_revision,
    которая хранит основные метаданные ревизий материалов
  • таблицу node,
    которая является основной таблицей для хранения материалов (нод)
  • таблицу filter_format,
    которая определяет форматы фильтрации текстового содержимого
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить