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

Таблица views_view_relationship

Таблица views_view_relationship является частью системы хранения конфигурации представлений в Drupal. Она отвечает за хранение настроек связей, которые определяют, как к основному запросу представления присоединяются данные из других таблиц базы данных через механизмы JOIN.

Поля

Поле Тип данных Описание
vid int Идентификатор версии представления. Внешний ключ к таблице views_view.
id int Идентификатор дисплея внутри представления. Вместе с vid формирует составной первичный ключ.
relationship varchar(128) Машинное имя связи. Уникальный идентификатор связи в контексте конкретного представления и дисплея.
table varchar(64) Имя таблицы, к которой осуществляется присоединение через связь.
field varchar(64) Поле, которое используется для установления связи (например, поле с идентификатором сущности).
options longblob Сериализованный массив дополнительных настроек связи. Может содержать параметры JOIN, условия и другую мета-информацию.

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

Когда администратор или разработчик создает представление в Drupal и добавляет к нему связь (например, "Содержимое: Автор" для присоединения данных о пользователе, создавшем материал), конфигурация этой связи сохраняется в таблице views_view_relationship.

Каждая запись в этой таблице соответствует одной связи в конкретном представлении (vid) и конкретном дисплее (id). Поле relationship содержит машинное имя, которое используется в коде представления для ссылки на эту связь.

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

Поле options содержит сериализованные настройки связи, которые могут включать тип JOIN (INNER, LEFT, RIGHT), дополнительные условия присоединения и другую информацию, необходимую для корректного построения запроса.

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

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

SELECT vr.*, v.name as view_name FROM views_view_relationship vr JOIN views_view v ON vr.vid = v.vid WHERE vr.vid = 15 ORDER BY vr.id;

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

  • таблицу views_view,
    которая хранит основные настройки представлений
  • таблицу views_display,
    которая содержит информацию о дисплеях представлений
  • таблицу views_field,
    которая хранит настройки полей представлений
  • таблицу views_filter,
    которая содержит информацию о фильтрах представлений