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

Таблица field_data_field_data

Таблица field_data_field_data является стандартной таблицей данных поля в Drupal 7. Она создается автоматически при добавлении поля с машинным именем field_data к любому типу сущности (нода, пользователь, термин таксономии и т.д.). Эта таблица хранит фактические данные, введенные пользователями или системой для данного поля.

Поля

Поле Тип данных Описание
entity_type varchar(128) Тип сущности, к которой принадлежит поле (например, node, user, taxonomy_term).
bundle varchar(128) Название бандла (типа материала, роли пользователя, словаря таксономии), к которому прикреплено поле.
deleted int Флаг удаления: 0 - запись активна, 1 - запись удалена. Drupal использует "мягкое" удаление для целостности данных.
entity_id int Идентификатор сущности (nid, uid, tid), к которой относится значение поля. Внешний ключ к таблице базовой сущности.
revision_id int Идентификатор ревизии сущности, если сущность поддерживает версионность. Для сущностей без ревизий равен entity_id.
language varchar(32) Языковой код значения поля (например, und для неопределенного языка, en, ru). Позволяет хранить multilingual данные.
delta int Порядковый индекс значения для полей с множественным значением. Начинается с 0.
field_data_value longtext Основное значение поля. Конкретный тип данных и содержание зависят от настроек поля (формат, максимальная длина).
field_data_format varchar(255) Идентификатор формата текстового фильтра (input format), примененного к значению, если поле настроено на использование фильтров.

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

Когда на сайте Drupal создается поле с машинным именем field_data, система автоматически генерирует две таблицы: field_data_field_data (для хранения данных) и field_revision_field_data (для хранения ревизий этих данных). Структура таблицы определяется типом поля (текстовое, число, ссылка и т.д.).

При сохранении сущности (ноды, пользователя) данные из соответствующей формы записываются в эту таблицу. Для полей с множественными значениями создается несколько записей с одинаковым entity_id и language, но разным delta.

При загрузке сущности Drupal присоединяет (JOIN) данные из этой таблицы к основной сущности на основе entity_type, entity_id и language. Поле deleted обеспечивает целостность данных при удалении поля или его значений - данные не удаляются физически, а помечаются как удаленные.

Имя таблицы формируется по шаблону field_data_ + [машинное_имя_поля]. Таким образом, таблица field_data_field_data специфична для поля с машинным именем field_data.

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

Выбрать все значения поля field_data для определенной ноды:

SELECT fdfd.entity_id, fdfd.delta, fdfd.field_data_value, fdfd.field_data_format FROM field_data_field_data fdfd WHERE fdfd.entity_type = 'node' AND fdfd.entity_id = 123 AND fdfd.deleted = 0 ORDER BY fdfd.delta;

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

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