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

Таблица node__comment

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

Поля

Поле Тип данных Описание
bundle varchar(128) Тип материала (ноды), к которому привязаны комментарии. Ссылается на тип материала, например article или page.
deleted tinyint Флаг удаления записи. 0 - запись активна, 1 - запись удалена.
entity_id int Идентификатор ноды (материала), к которой относятся комментарии. Внешний ключ, ссылается на таблицу node.
revision_id int Идентификатор ревизии ноды. Внешний ключ, ссылается на таблицу node_revision.
langcode varchar(32) Код языка, для которого предназначены комментарии.
delta int Порядковый номер (дельта) для случаев, когда к одному материалу привязано несколько полей с комментариями.
comment_status int Статус комментариев для материала. 0 - скрыты, 1 - открыты, 2 - закрыты.
comment_count int Общее количество комментариев, привязанных к данной ноде.
last_comment_timestamp int Временная метка Unix времени создания последнего комментария.
last_comment_name varchar(60) Имя автора последнего комментария (для анонимных пользователей).
last_comment_uid int Идентификатор пользователя, оставившего последний комментарий. Внешний ключ, ссылается на таблицу users.
cid int Идентификатор последнего комментария. Внешний ключ, ссылается на таблицу comment.

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

Когда на сайте Drupal создается материал (нода) с включенной поддержкой комментариев, в таблице node__comment автоматически создается запись. При добавлении первого комментария к материалу система обновляет поля comment_count, last_comment_timestamp, last_comment_uid и cid.

Эта таблица оптимизирована для быстрого получения информации о комментариях без необходимости выполнять ресурсоемкие JOIN-запросы к таблице comment. Например, при выводе списка материалов часто требуется показать количество комментариев к каждому материалу - эта информация берется непосредственно из node__comment.

Поле comment_status позволяет управлять статусом комментариев для каждого материала индивидуально. Администратор может закрыть комментарии для конкретной статьи, даже если для типа материала в целом комментарии разрешены.

Важно отметить, что таблица node__comment является дельта-таблицей системы полей Drupal и работает в связке с основной таблицей node. Данные в этой таблице автоматически поддерживаются в актуальном состоянии ядром Drupal через систему хуков и событий.

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

Получить список материалов с количеством комментариев и информацией о последнем комментаторе можно следующим запросом:

SELECT n.nid, n.title, nc.comment_count, FROM_UNIXTIME(nc.last_comment_timestamp) as last_comment_date, u.name as last_comment_author FROM node n INNER JOIN node__comment nc ON n.nid = nc.entity_id LEFT JOIN users u ON nc.last_comment_uid = u.uid WHERE nc.comment_count > 0 ORDER BY nc.last_comment_timestamp DESC;

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

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