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

Таблица comment

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

Поля

Поле Тип данных Описание
cid int Уникальный идентификатор комментария. Первичный ключ, автоинкремент.
comment_type varchar(255) Тип комментария (машинное имя). Определяет, к какому типу содержимого относится комментарий.
uuid varchar(128) Уникальный универсальный идентификатор комментария (UUID).
langcode varchar(12) Код языка, на котором написан комментарий.
status tinyint Статус публикации комментария: 0 - не опубликован, 1 - опубликован.
uid int Идентификатор пользователя, создавшего комментарий. Внешний ключ для таблицы users. Может быть 0 для анонимных комментариев.
pid int Идентификатор родительского комментария. Внешний ключ для этой же таблицы (comment). Значение 0 означает, что это комментарий верхнего уровня.
entity_id int Идентификатор материала (ноды), к которому относится комментарий. Внешний ключ для таблицы node.
subject varchar(255) Заголовок комментария.
created int Временная метка создания комментария (Unix timestamp).
changed int Временная метка последнего изменения комментария (Unix timestamp).
thread varchar(255) Строка, представляющая иерархический путь комментария в древовидной структуре. Используется для эффективного упорядочивания комментариев.
entity_type varchar(255) Тип сущности, к которой привязан комментарий. Обычно имеет значение node.
field_name varchar(255) Название поля, к которому привязан комментарий.
default_langcode tinyint Флаг, указывающий является ли язык комментария языком по умолчанию: 0 - нет, 1 - да.

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

Когда пользователь оставляет комментарий к материалу, в таблице comment создается новая запись. Поле entity_id связывает комментарий с конкретным материалом (нодой), а поле uid - с автором комментария.

Для организации вложенных комментариев используется поле pid, которое ссылается на cid родительского комментария. Если pid равен 0, это означает, что комментарий является корневым в ветке обсуждения.

Поле thread содержит специально сформированную строку, которая отражает позицию комментария в иерархии. Это позволяет эффективно сортировать и отображать древовидную структуру комментариев без рекурсивных SQL-запросов.

Статус комментария (опубликован или нет) управляется через поле status. Администраторы могут модерировать комментарии, изменяя это значение.

Содержимое комментария (текст) хранится не в этой таблице, а в связанных таблицах полей, обычно в comment__body, так как Drupal использует систему полей для хранения контента.

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

Получить все опубликованные комментарии к конкретной ноде с информацией об авторах:

SELECT c.cid, c.subject, c.created, u.uid, u.name as username, cb.body_value FROM comment c INNER JOIN users u ON c.uid = u.uid INNER JOIN comment__body cb ON c.cid = cb.entity_id WHERE c.entity_id = 123 AND c.entity_type = 'node' AND c.status = 1 ORDER BY c.thread;

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

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