Таблица 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,
которая хранит информацию о загруженных файлах