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

Таблица user__user_picture

Таблица user__user_picture является дельта-таблицей для хранения данных о файлах изображений пользователей. Она используется, когда поле user_picture настроено как переводное и позволяет хранить разные версии изображения для разных языков.

Поля

Поле Тип данных Описание
bundle varchar(128) Тип сущности (бандл). Для пользователей всегда имеет значение user.
deleted tinyint Флаг удаления: 0 - запись активна, 1 - запись удалена.
entity_id int Идентификатор пользователя (uid). Внешний ключ к таблице users.
revision_id int Идентификатор ревизии пользователя. Внешний ключ к таблице users_field_data.
langcode varchar(32) Код языка, для которого предназначено это значение поля.
delta int Порядковый номер значения в случае, если поле может содержать несколько значений.
user_picture_target_id int Идентификатор файла изображения. Внешний ключ к таблице file_managed.
user_picture_alt varchar(512) Альтернативный текст (alt) для изображения.
user_picture_title varchar(1024) Текст подсказки (title) для изображения.
user_picture_width int Ширина изображения в пикселях.
user_picture_height int Высота изображения в пикселях.

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

Когда пользователь загружает изображение в свой профиль, система создает запись в таблице file_managed с информацией о файле. Затем в таблице user__user_picture создается связь между пользователем (entity_id) и файлом (user_picture_target_id).

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

Поля user_picture_alt и user_picture_title хранят метаданные для улучшения доступности и SEO. Поля user_picture_width и user_picture_height содержат размеры изображения, что позволяет Drupal оптимизировать отображение без необходимости постоянной загрузки файла.

Флаг deleted используется для мягкого удаления - запись помечается как удаленная, но физически остается в базе данных для возможного восстановления или аудита.

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

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

SELECT u.name, u.uid, f.filename, f.uri, up.user_picture_alt, up.user_picture_title FROM user__user_picture up INNER JOIN users u ON up.entity_id = u.uid INNER JOIN file_managed f ON up.user_picture_target_id = f.fid WHERE up.deleted = 0 AND up.langcode = 'ru';

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

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