Таблица comment__comment_body
Таблица comment__comment_body является де-нормализованной таблицей данных поля в Drupal и хранит основной текст комментария. Она создается автоматически ядром Drupal при добавлении поля с машинным именем comment_body к типу комментария (comment). Эта таблица является частью системы полей Drupal.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bundle |
varchar(128) |
Название типа комментария (bundle), к которому привязано данное поле. Например, comment.
|
deleted |
tinyint |
Флаг, указывающий на удаление данных поля (0 - не удалено, 1 - удалено). Используется для поддержки временного удаления данных.
|
entity_id |
int |
Внешний ключ, связывающий запись с конкретным комментарием. Ссылается на cid в таблице comment.
|
revision_id |
int |
Идентификатор ревизии комментария, если включено управление ревизиями. Ссылается на cid в таблице comment_field_revision.
|
langcode |
varchar(32) |
Код языка, на котором представлено содержимое этого поля. Соответствует коду из таблицы languages.
|
delta |
int |
Порядковый номер (индекс) значения в случае, если поле допускает множественное значение. Начинается с 0.
|
comment_body_value |
longtext |
Основное поле, содержащее необработанный текст комментария, введенный пользователем. |
comment_body_format |
varchar(255) |
Идентификатор формата текстового фильтра (например, basic_html, full_html), примененного к содержимому. Ссылается на таблицу filter_format.
|
Как это работает
Когда пользователь добавляет или редактирует комментарий на сайте Drupal, текст, который он вводит в основное текстовое поле, сохраняется в колонке comment_body_value. Выбранный пользователем или назначенный по умолчанию текстовый формат сохраняется в колонке comment_body_format.
При отображении комментария Drupal берет необработанный текст из comment_body_value и пропускает его через систему фильтров, соответствующую comment_body_format, чтобы преобразовать его в безопасный HTML для вывода в браузере.
Связь с основным комментарием осуществляется через entity_id, который равен cid комментария. Это позволяет JOIN-запросами получить полные данные комментария, включая его текст.
Структура таблицы (префикс comment__) указывает на то, что это таблица данных поля для сущности comment. Аналогичные таблицы существуют и для других сущностей (нод, пользователей, терминов таксономии).
Пример SQL-запроса
Получить текст и тему комментариев для определенного материала (ноды) можно следующим запросом:
SELECT c.cid, c.subject, cb.comment_body_value, cb.comment_body_format
FROM comment_field_data c
JOIN comment__comment_body cb ON c.cid = cb.entity_id
WHERE c.entity_id = 123 AND c.langcode = 'ru'
ORDER BY c.created DESC;
Смотрите также
-
таблицу
comment,
которая хранит основные данные комментария -
таблицу
comment_field_data,
которая содержит денормализованные данные комментариев -
таблицу
filter_format,
которая определяет доступные форматы текста -
таблицу
node,
которая хранит материалы, к которым оставляются комментарии