Таблица comment_revision
Таблица comment_revision предназначена для хранения различных версий (ревизий) комментариев в Drupal. Каждый раз, когда комментарий редактируется, создается новая запись в этой таблице, сохраняя предыдущее состояние комментария. Это обеспечивает механизм контроля версий для содержимого комментариев.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
int |
Идентификатор комментария. Внешний ключ, ссылается на таблицу comment.
|
vid |
int |
Уникальный идентификатор ревизии (версии) комментария. Также является первичным ключом этой таблицы. |
uid |
int |
Идентификатор пользователя, создавшего данную ревизию. Внешний ключ, ссылается на таблицу users.
|
subject |
varchar(64) |
Заголовок комментария на момент создания этой ревизии. |
comment |
longtext |
Основное содержимое (тело) комментария на момент создания этой ревизии. |
format |
varchar(255) |
Идентификатор формата текста (например, 'basic_html', 'full_html'), который использовался для отображения содержимого комментария. |
timestamp |
int |
UNIX-время создания данной ревизии комментария. |
status |
int |
Статус комментария: 0 - не опубликован, 1 - опубликован, 2 - на модерации.
|
revision_created |
int |
UNIX-время создания ревизии. Может отличаться от timestamp, если ревизия создана позже самого комментария.
|
revision_log |
longtext |
Опциональное поле для записи заметок о изменениях, сделанных в этой ревизии (лог изменений). |
Как это работает
Когда пользователь создает новый комментарий, в таблице comment создается основная запись. Одновременно с этим в comment_revision создается первая ревизия (версия) этого комментария с идентичным содержимым.
При последующем редактировании комментария модулем Content Moderation или ядром Drupal, в comment_revision добавляется новая запись с обновленным содержимым, при этом сохраняется связь с оригинальным комментарием через поле cid. Поле vid каждой новой ревизии увеличивается.
Текущая (активная) версия комментария определяется по полю vid в основной таблице comment, которое указывает на актуальную ревизию в comment_revision.
Система ревизий позволяет администраторам просматривать историю изменений комментария, сравнивать разные версии и восстанавливать предыдущие состояния, если это необходимо.
Пример SQL-запроса
Получить все ревизии конкретного комментария с информацией об авторах можно следующим запросом:
SELECT cr.vid, cr.subject, u.name as author,
FROM_UNIXTIME(cr.revision_created) as revision_date,
cr.status
FROM comment_revision cr
JOIN users u ON cr.uid = u.uid
WHERE cr.cid = 123
ORDER BY cr.vid DESC;
Смотрите также
-
таблицу
comment,
которая содержит основные данные комментариев -
таблицу
comment_field_data,
которая хранит данные полей комментариев -
таблицу
comment_entity_statistics,
которая содержит статистику комментариев для сущностей -
таблицу
node_revision,
которая хранит ревизии материалов (нод)