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

Таблица taxonomy_index

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

Поля

Поле Тип данных Описание
nid int Идентификатор материала (ноды). Внешний ключ, ссылается на таблицу node.
tid int Идентификатор термина таксономии. Внешний ключ, ссылается на таблицу taxonomy_term_data.
sticky tinyint Флаг "прикрепленный материал". Показывает, является ли материал прикрепленным (1) или обычным (0).
created int Временная метка создания материала (ноды). Совпадает с полем created в таблице node.

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

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

Эта таблица оптимизирована для выполнения быстрых запросов на выборку материалов по терминам таксономии. Например, при просмотре страницы термина или при использовании фильтров на основе таксономии.

Поле sticky позволяет правильно сортировать материалы при выборке, показывая прикрепленные материалы в начале списка.

Поле created используется для сортировки материалов по дате создания при выполнении запросов, связанных с таксономией.

Важно отметить, что таблица taxonomy_index является производной и не должна изменяться вручную. Она автоматически поддерживается Drupal в актуальном состоянии через систему хук-событий при сохранении материалов и терминов.

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

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

SELECT n.nid, n.title, n.created FROM taxonomy_index ti INNER JOIN node n ON ti.nid = n.nid WHERE ti.tid = 5 ORDER BY ti.sticky DESC, ti.created DESC;

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

  • таблицу node,
    которая хранит основные данные материалов
  • таблицу taxonomy_term_data,
    которая содержит данные терминов таксономии
  • таблицу taxonomy_term_hierarchy,
    которая хранит иерархию терминов таксономии
  • таблицу taxonomy_index,
    которая является индексной таблицей связей материалов и терминов