Таблица taxonomy_term__parent
Таблица taxonomy_term__parent является дельта-таблицей в Drupal и хранит данные о родительских терминах для каждого термина таксономии. Эта таблица используется для построения древовидных структур внутри словарей таксономии.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bundle |
varchar(128) |
Машинное имя словаря таксономии, к которому принадлежит термин. |
deleted |
tinyint |
Флаг удаления: 0 - запись активна, 1 - запись удалена.
|
entity_id |
int |
Идентификатор термина таксономии (tid), для которого указан родительский термин. Ссылается на таблицу taxonomy_term_data.
|
revision_id |
int |
Идентификатор ревизии термина. Ссылается на таблицу taxonomy_term_field_revision.
|
langcode |
varchar(32) |
Код языка, для которого указана родительская связь. |
delta |
int |
Порядковый номер значения в случае множественных родительских терминов. |
parent_target_id |
int |
Идентификатор родительского термина (tid). Ссылается на таблицу taxonomy_term_data.
|
Как это работает
Таблица taxonomy_term__parent является частью системы полей Drupal и хранит данные для поля parent сущности "Термин таксономии". Эта таблица позволяет создавать многоуровневые иерархии терминов внутри словарей.
Когда администратор создает или редактирует термин таксономии и указывает для него родительский термин, система сохраняет эту связь в таблице taxonomy_term__parent. Один термин может иметь несколько родительских терминов, что позволяет создавать сложные иерархические структуры.
При отображении меню навигации или построении дерева терминов, Drupal использует данные из этой таблицы для определения родительско-дочерних отношений. Модули таксономии и меню используют эти данные для правильного отображения иерархической структуры.
Важно отметить, что таблица taxonomy_term__parent является дельта-таблицей и хранит только измененные данные поля. Базовые значения хранятся в таблице taxonomy_term_data.
Пример SQL-запроса
Получить иерархическую структуру терминов для конкретного словаря можно следующим запросом:
SELECT c.tid as child_tid, c.name as child_name,
p.tid as parent_tid, p.name as parent_name
FROM taxonomy_term_data c
LEFT JOIN taxonomy_term__parent tp ON c.tid = tp.entity_id
LEFT JOIN taxonomy_term_data p ON tp.parent_target_id = p.tid
WHERE c.vid = 'tags'
ORDER BY parent_name, child_name;
Смотрите также
-
таблицу
taxonomy_term_data,
которая содержит основные данные терминов таксономии -
таблицу
taxonomy_term_field_data,
которая хранит данные полей терминов таксономии -
таблицу
taxonomy_index,
которая обеспечивает индексацию связей терминов с материалами -
таблицу
taxonomy_term_revision__parent,
которая хранит данные о родительских связях для ревизий терминов