Таблица comment_entity_statistics
Таблица comment_entity_statistics используется для хранения и быстрого доступа к статистическим данным о комментариях, связанных с сущностями Drupal. Она позволяет эффективно отслеживать количество комментариев, последний комментарий и время его создания для каждой сущности.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
entity_id |
int |
Идентификатор сущности, к которой относятся комментарии. Внешний ключ, ссылается на таблицу соответствующего типа сущности (например, node для нод).
|
entity_type |
varchar(32) |
Тип сущности, к которой относятся комментарии (например, node, user).
|
field_name |
varchar(32) |
Название поля, которое содержит комментарии для данной сущности. |
cid |
int |
Идентификатор последнего комментария. Внешний ключ, ссылается на таблицу comment.
|
last_comment_timestamp |
int |
Временная метка создания последнего комментария в формате Unix timestamp. |
last_comment_name |
varchar(60) |
Имя автора последнего комментария (может быть NULL, если комментарий оставлен анонимно).
|
last_comment_uid |
int |
Идентификатор пользователя, оставившего последний комментарий. Внешний ключ, ссылается на таблицу users.
|
comment_count |
int |
Общее количество комментариев, связанных с данной сущностью и полем. |
Как это работает
Таблица comment_entity_statistics служит для оптимизации работы с комментариями, предоставляя быстрый доступ к статистическим данным без необходимости выполнения ресурсоемких запросов к основной таблице комментариев.
При добавлении, обновлении или удалении комментария система автоматически обновляет соответствующие записи в этой таблице. Это позволяет быстро получать информацию о количестве комментариев для каждой сущности, а также данные о последнем комментарии.
Данные из этой таблицы часто используются при построении списков материалов (например, в представлениях Drupal Views) для отображения количества комментариев и информации о последнем комментаторе без необходимости выполнения сложных JOIN-запросов.
Первичный ключ таблицы состоит из трех полей: entity_id, entity_type и field_name, что позволяет хранить статистику для разных типов сущностей и разных полей комментариев в рамках одной системы.
Пример SQL-запроса
Получить статистику комментариев для конкретной ноды:
SELECT ces.*, n.title as node_title
FROM comment_entity_statistics ces
INNER JOIN node n ON ces.entity_id = n.nid
WHERE ces.entity_type = 'node'
AND ces.entity_id = 123;
Смотрите также
-
таблицу
comment,
которая хранит основные данные комментариев -
таблицу
node,
которая содержит материалы сайта -
таблицу
users,
которая хранит данные пользователей -
таблицу
comment_field_data,
которая содержит данные полей комментариев