Таблица 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,
которая содержит информацию о фильтрах представлений