Таблица field_data_comment_body
Таблица field_data_comment_body является одной из стандартных таблиц поля Drupal Field API и служит для хранения текста комментариев. Это поле создается автоматически при включении модуля Comment и является телом комментария по умолчанию.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
entity_type |
varchar(128)
| Тип сущности, к которой привязано поле. Всегда имеет значение comment для этого поля. |
bundle |
varchar(128)
| Название типа комментария (бандла), к которому относится данное поле. Обычно имеет значение comment_node_[content_type]. |
deleted |
int
|
Флаг удаления поля: 0 - поле активно, 1 - поле удалено. Используется системой для отслеживания удаленных полей без физического удаления данных.
|
entity_id |
int
|
Идентификатор комментария (CID), к которому относится данная запись. Внешний ключ к таблице comment.
|
revision_id |
int
|
Идентификатор ревизии комментария, если включено управление ревизиями. Ссылается на таблицу comment_revision.
|
language |
varchar(32)
| Язык содержимого. Для одязычных сайтов обычно имеет значение und (undefined). |
delta |
int
|
Порядковый номер значения для полей с множественным значением. Для одинарных полей всегда 0.
|
comment_body_value |
longtext
| Основное содержимое тела комментария в необработанном виде. |
comment_body_format |
varchar(255)
| Идентификатор формата текстового фильтра, примененного к содержимому (например, filtered_html, full_html). |
Как это работает
Когда пользователь добавляет комментарий к материалу, система Drupal создает запись в таблице comment с основной метаинформацией (автор, дата, статус). Текст комментария сохраняется отдельно в таблице field_data_comment_body, где entity_id соответствует cid из таблицы комментариев.
Таблица использует структуру, общую для всех полей Field API, что позволяет системе единообразно управлять данными разных типов полей. Поле comment_body обычно является обязательным и создается автоматически при установке модуля Comment.
При отображении комментария Drupal объединяет данные из таблицы comment и field_data_comment_body, применяет указанный текстовый формат к содержимому и выводит результат.
При удалении комментария соответствующая запись в этой таблице помечается как удаленная (поле deleted устанавливается в 1), но физически не удаляется сразу для возможности восстановления или аудита.
Пример SQL-запроса
Получить текст комментариев для конкретного материала можно следующим запросом:
SELECT c.cid, c.subject, cb.comment_body_value, cb.comment_body_format
FROM comment c
INNER JOIN field_data_comment_body cb ON c.cid = cb.entity_id
WHERE c.nid = 123 AND cb.deleted = 0
ORDER BY c.created DESC;
Смотрите также
-
таблицу
comment,
которая хранит основную метаинформацию о комментариях -
таблицу
comment_revision,
которая хранит ревизии комментариев -
таблицу
node,
которая хранит материалы, к которым добавляются комментарии -
таблицу
field_config,
которая хранит конфигурацию полей