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

Таблица 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,
    которая хранит ревизии материалов (нод)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить