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

Таблица field_data_field_image

Таблица field_data_field_image является одной из таблиц хранения данных полей в Drupal 7. Она создается автоматически модулем Field при добавлении поля с машинным именем field_image типа "Изображение" и хранит основную информацию о загруженных изображениях, связанных с различными сущностями системы.

Поля

Поле Тип данных Описание
entity_type varchar(128) Тип сущности, к которой прикреплено изображение (например, node, user, taxonomy_term).
bundle varchar(128) Название типа материала (или другого бандла), к которому относится это поле.
deleted int Флаг удаления: 0 - запись активна, 1 - запись удалена.
entity_id int Идентификатор сущности (например, nid для узла, uid для пользователя), к которой прикреплено изображение.
revision_id int Идентификатор ревизии сущности (актуально для включенного трекинга ревизий).
language varchar(32) Язык контента (например, und для неопределенного языка, ru, en).
delta int Порядковый номер (вес) изображения, если поле допускает множественные значения.
field_image_fid int Идентификатор файла (fid) из таблицы file_managed, который представляет собой загруженное изображение.
field_image_alt varchar(512) Альтернативный текст (alt) для изображения, важный для accessibility (доступности) и SEO.
field_image_title varchar(1024) Текст заголовка (title) для изображения, который отображается в виде всплывающей подсказки.
field_image_width int Оригинальная ширина изображения в пикселях.
field_image_height int Оригинальная высота изображения в пикселях.

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

Когда на сайте Drupal создается поле типа "Изображение" с машинным именем field_image, система автоматически создает две таблицы: field_data_field_image (для хранения данных) и field_revision_field_image (для хранения ревизий этих данных). При загрузке изображения через интерфейс управления контентом, файл сначала сохраняется в таблицу file_managed, а затем в эту таблицу записывается связь между сущностью (узлом, пользователем) и файлом изображения, а также его метаданные (alt, title).

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

При отображении сущности (например, при просмотре узла) система загружает все данные её полей из соответствующих таблиц field_data_*. Для поля изображения берутся данные из field_image_fid, field_image_alt и field_image_title, после чего по fid находится сам файл в таблице file_managed, и генерируется HTML-тег img с правильными атрибутами src, alt и title.

Важно отметить, что таблица field_data_field_image содержит только данные. Конфигурация самого поля (название, количество значений, настройки отображения, разрешенные расширения файлов) хранится в других системных таблицах Drupal, таких как field_config и field_config_instance.

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

Получить все изображения для определенного узла (например, с nid = 42) вместе с путями к файлам можно следующим запросом:

SELECT fdfi.entity_id, fdfi.delta, fdfi.field_image_alt, fdfi.field_image_title, fm.fid, fm.uri, fm.filename FROM field_data_field_image fdfi INNER JOIN file_managed fm ON fdfi.field_image_fid = fm.fid WHERE fdfi.entity_type = 'node' AND fdfi.entity_id = 42 AND fdfi.deleted = 0 ORDER BY fdfi.delta;

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

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