Таблица node_revision__comment
Таблица node_revision__comment является дельта-таблицей для хранения данных поля комментариев (comment) при использовании ревизий материалов. Она содержит информацию о настройках комментариев для каждой отдельной ревизии узла, что позволяет отслеживать изменения в политике комментирования для разных версий материала.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bundle |
varchar(128) |
Тип материала (bundle), к которому относится данная ревизия. Ссылается на тип материала в node_type.
|
deleted |
tinyint |
Флаг удаления: 0 - запись активна, 1 - запись удалена.
|
entity_id |
int |
Идентификатор материала (nid), к которому относится ревизия. Внешний ключ к таблице node.
|
revision_id |
int |
Идентификатор ревизии материала. Внешний ключ к таблице node_revision.
|
langcode |
varchar(32) |
Код языка, для которого предназначены данные комментария. |
delta |
int |
Порядковый номер значения поля для случаев, когда поле может содержать несколько значений. |
comment_status |
int |
Статус комментариев для данной ревизии: 0 - скрыто, 1 - открыто, 2 - закрыто.
|
Как это работает
При создании новой ревизии материала система Drupal сохраняет не только содержимое материала, но и настройки связанных полей, включая настройки комментариев. Это позволяет восстановить не только текст материала, но и состояние комментариев на момент создания конкретной ревизии.
Поле comment_status определяет, разрешены ли комментарии к данной ревизии материала и в каком состоянии они находятся. Значение 0 означает, что комментарии скрыты (но существующие остаются доступными), 1 - комментарии открыты для добавления новых, 2 - комментарии закрыты (новые добавлять нельзя).
Связка entity_id + revision_id однозначно идентифицирует, к какой ревизии какого материала относятся данные о комментариях. При откате к предыдущей ревизии система использует данные из этой таблицы, чтобы восстановить соответствующие настройки комментариев.
Таблица является частью системы полей Drupal и работает в связке с основной таблицей данных поля node__comment, которая хранит актуальные (не ревизионные) данные.
Пример SQL-запроса
Получить информацию о настройках комментариев для всех ревизий конкретного материала:
SELECT nr.vid, nr.revision_timestamp, nrc.comment_status
FROM node_revision__comment nrc
JOIN node_revision nr ON nrc.revision_id = nr.vid
WHERE nrc.entity_id = 123
ORDER BY nr.revision_timestamp DESC;
Смотрите также
-
таблицу
node,
которая содержит основные данные материалов -
таблицу
node_revision,
которая хранит ревизии материалов -
таблицу
node__comment,
которая содержит актуальные данные поля комментариев -
таблицу
comment,
которая хранит сами комментарии