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

Таблица field_data_body

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

Поля

Поле Тип данных Описание
entity_type varchar(128) Тип сущности, к которой прикреплено поле. Например, node для материалов, taxonomy_term для терминов словаря.
bundle varchar(128) Название типа (подтипа) сущности, в котором объявлено это поле. Например, article или page для нод.
deleted int Флаг, указывающий, удалено ли поле из данного типа сущности (1) или нет (0). Данные для удаленных полей сохраняются в таблице для возможного восстановления.
entity_id int Уникальный идентификатор (ID) сущности, к которой принадлежит данное значение поля. Ссылается на базовую таблицу сущности (например, node.nid).
revision_id int Идентификатор ревизии сущности, если сущность поддерживает версионность (как ноды). Для сущностей без версий равен entity_id.
language varchar(32) Языковой код (например, und для неопределенного языка, ru, en), для которого предназначено это значение поля. Поддерживает многоязычность.
delta int Порядковый номер значения в случае, если поле допускает множественные значения. Начинается с 0.
body_value longtext Основное значение поля - сам текст тела содержимого.
body_summary longtext Необязательное краткое изложение (анонс) текста. Может генерироваться автоматически или заполняться вручную.
body_format varchar(255) Идентификатор формата текстового фильтра (например, full_html, filtered_html, plain_text), примененного к данному тексту. Ссылается на таблицу filter_format.

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

Когда создается новый тип материала (нода) с полем body, Drupal автоматически создает таблицу field_data_body (если она еще не создана) для хранения его данных. При сохранении сущности её данные записываются в эту таблицу.

Структура таблицы является общей для всех полей Drupal. Поля entity_type, bundle и deleted определяют контекст использования поля. Поля entity_id и language однозначно идентифицируют сущность и её языковую версию. Поле delta позволяет хранить несколько значений для одного поля.

Основное содержимое хранится в поле body_value. Форматирование этого текста определяется форматом фильтра, указанным в body_format. При отображении ноды Drupal берет текст из body_value и применяет к нему фильтры, соответствующие выбранному формату.

Важно отметить, что эта таблица является таблицей ⁅i⁆данных⁅/i⁆. Для описания самого поля (его настроек, привязки к типам сущностей) используются другие таблицы, такие как field_config и field_config_instance.

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

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

SELECT body_value, body_format FROM field_data_body WHERE entity_type = 'node' AND entity_id = 123 AND language = 'ru';

Получить заголовок и тело для последних 10 опубликованных статей:

SELECT n.title, fdb.body_value, fdb.body_summary FROM node n INNER JOIN field_data_body fdb ON n.nid = fdb.entity_id AND fdb.entity_type = 'node' WHERE n.type = 'article' AND n.status = 1 ORDER BY n.created DESC LIMIT 10;

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

  • таблицу node,
    которая хранит основную информацию о материалах
  • таблицу field_revision_body,
    которая хранит историю изменений поля body
  • таблицу field_config,
    которая хранит настройки поля body
  • таблицу filter_format,
    которая определяет форматы текстовых фильтров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить