Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
18 of 182 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

Таблица node_revision__field_image

Таблица node_revision__field_image является таблицей данных поля типа image для ревизий материалов. В Drupal с включенным модулем Content Translation каждое изменение материала создает новую ревизию, и эта таблица хранит значения поля изображения для каждой такой ревизии, обеспечивая полную историю изменений.

Поля

Поле Тип данных Описание
bundle varchar(128) Тип материала (content type), к которому относится это поле. Например: article, page.
deleted tinyint Флаг, указывающий на удаление данных: 0 - запись активна, 1 - запись удалена.
entity_id int Идентификатор материала (node), с которым связана ревизия. Внешний ключ к таблице node.
revision_id int Идентификатор ревизии материала. Является первичным ключом. Внешний ключ к таблице node_revision.
langcode varchar(32) Языковой код (language code) значения поля. Например: en, ru.
delta int Порядковый индекс значения для полей с множественным значением. Отсчет начинается с 0.
field_image_target_id int Идентификатор файла изображения из таблицы file_managed. Внешний ключ к fid.
field_image_alt varchar(512) Атрибут alt для изображения. Альтернативный текст, отображаемый если изображение не загрузилось, и важный для SEO и доступности.
field_image_title varchar(1024) Атрибут title для изображения. Текст, который появляется в виде всплывающей подсказки при наведении курсора на изображение.
field_image_width int Ширина изображения в пикселях.
field_image_height int Высота изображения в пикселях.

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

При создании или редактировании материала типа контента, в котором есть поле field_image, пользователь загружает изображение. Файл сохраняется в таблице file_managed, а его идентификатор (fid) и метаданные (alt, title) записываются в таблицу node__field_image для текущей версии материала.

При каждом сохранении материала с включенной функцией отслеживания ревизий создается новая запись в node_revision. Все значения полей этой конкретной ревизии, включая изображения, сохраняются в соответствующих ревизионных таблицах полей, таких как node_revision__field_image. Это позволяет откатиться к любой предыдущей версии материала и увидеть, какие изображения в ней были прикреплены, даже если в текущей версии они уже изменены или удалены.

Структура таблицы оптимизирована для хранения нескольких значений (дельта) и мультиязычности (langcode). Поля field_image_width и field_image_height часто заполняются процессом стилей изображений Drupal для быстрого доступа к размерам без необходимости загрузки всего файла.

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

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

SELECT nr.vid, nr.nid, nfd.title as file_name, nri.field_image_alt, nri.field_image_title, nri.field_image_width, nri.field_image_height FROM node_revision__field_image nri INNER JOIN node_revision nr ON nri.revision_id = nr.vid INNER JOIN file_managed nfd ON nri.field_image_target_id = nfd.fid WHERE nri.revision_id = 125;

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

  • таблицу node,
    которая содержит основные данные материалов
  • таблицу node_revision,
    которая хранит ревизии материалов
  • таблицу node__field_image,
    которая хранит актуальные значения поля изображения
  • таблицу file_managed,
    которая хранит информацию о загруженных файлах