Таблица block_content_revision__body
Таблица block_content_revision__body является частью системы ревизий Drupal и хранит исторические версии содержимого текстовых полей body для пользовательских блоков контента. Каждое изменение поля body создает новую запись в этой таблице, позволяя отслеживать историю изменений и при необходимости восстанавливать предыдущие версии.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bundle |
varchar(128) |
Тип блока контента (бандл), к которому относится это поле. Определяет, к какому типу контента принадлежит поле body. |
deleted |
tinyint |
Флаг удаления: 0 - запись активна, 1 - запись удалена. Используется для мягкого удаления данных поля.
|
entity_id |
int |
Идентификатор сущности блока контента. Внешний ключ к таблице block_content.
|
revision_id |
int |
Идентификатор ревизии блока контента. Внешний ключ к таблице block_content_revision.
|
langcode |
varchar(32) |
Код языка, для которого хранится перевод поля body. |
delta |
int |
Порядковый номер значения для полей с множественными значениями. Для одиночных полей всегда равен 0.
|
body_value |
longtext |
Основное значение поля body - текстовое содержимое блока контента. |
body_format |
varchar(255) |
Идентификатор формата текста (например: basic_html, full_html). Ссылается на таблицу filter_format.
|
body_summary |
longtext |
Краткое описание (аннотация) текстового содержимого. Может использоваться для анонсов или сокращенного отображения. |
Как это работает
При создании или редактировании пользовательского блока контента с полем body система Drupal создает запись в основной таблице block_content и соответствующую запись ревизии в block_content_revision. Данные поля body сохраняются отдельно в таблице block_content_revision__body, что позволяет системе хранить полную историю изменений этого поля.
Каждая ревизия поля body связана с конкретной ревизией блока контента через поле revision_id. Это позволяет откатываться к предыдущим версиям содержимого блока, просматривать историю изменений и сравнивать разные версии текста.
Система использует поле deleted для мягкого удаления данных поля при удалении самой ревизии или всего блока контента. Это позволяет восстанавливать удаленные данные при необходимости.
Для многоязычных сайтов поле langcode обеспечивает хранение переводов содержимого поля body на разные языки. Каждый перевод имеет свою собственную историю ревизий.
Пример SQL-запроса
Получить все ревизии поля body для конкретного блока контента можно следующим запросом:
SELECT br.revision_id, br.revision_created, bcrb.body_value, bcrb.body_format
FROM block_content_revision__body bcrb
JOIN block_content_revision br ON bcrb.revision_id = br.revision_id
WHERE bcrb.entity_id = 123
ORDER BY br.revision_created DESC;
Смотрите также
-
таблицу
block_content,
которая хранит основные данные блоков контента -
таблицу
block_content_revision,
которая хранит ревизии блоков контента -
таблицу
block_content_field_data,
которая хранит данные полей блоков контента -
таблицу
block_content_field_revision,
которая хранит ревизии данных полей блоков контента