Таблица taxonomy_term_revision__parent
Таблица taxonomy_term_revision__parent является частью системы ревизий Drupal и предназначена для хранения информации о родительских терминах для каждой ревизии термина таксономии. Это позволяет системе отслеживать изменения в иерархической структуре словарей с течением времени.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
bundle |
varchar(128) |
Тип словаря (машиночитаемое имя), к которому принадлежит термин. Определяет, к какому словарю относится термин. |
deleted |
tinyint |
Флаг удаления: 0 - запись активна, 1 - запись удалена.
|
entity_id |
int |
Идентификатор термина таксономии, к которому относится родительская связь. Внешний ключ к таблице taxonomy_term_data.
|
revision_id |
int |
Идентификатор ревизии термина. Внешний ключ к таблице taxonomy_term_revision.
|
langcode |
varchar(32) |
Код языка, для которого определено значение родительской связи. |
delta |
int |
Порядковый индекс значения для случаев, когда у термина может быть несколько родителей. |
parent_target_id |
int |
Идентификатор родительского термина. Внешний ключ к таблице taxonomy_term_data.
|
Как это работает
При создании или редактировании термина таксономии в Drupal с включенной системой ревизий, для каждого изменения создается новая ревизия. Таблица taxonomy_term_revision__parent хранит информацию о родительских терминах для каждой такой ревизии.
Когда пользователь изменяет родительские связи термина (добавляет или удаляет родителей), система создает новую запись в этой таблице, связывая её с конкретной ревизией термина через поле revision_id.
Эта таблица использует архитектуру Drupal Field API, где parent_target_id является ссылкой на целевую сущность (родительский термин), а delta позволяет хранить множественные значения для случаев, когда термин имеет нескольких родителей.
Система ревизий обеспечивает целостность данных: даже если родительский термин будет удален в будущем, историческая информация о связях в ревизиях останется неизменной для аудита и отслеживания изменений.
Пример SQL-запроса
Получить информацию о родительских связях для конкретной ревизии термина:
SELECT trp.*, td.name as term_name, parent_td.name as parent_name
FROM taxonomy_term_revision__parent trp
INNER JOIN taxonomy_term_data td ON trp.entity_id = td.tid
LEFT JOIN taxonomy_term_data parent_td ON trp.parent_target_id = parent_td.tid
WHERE trp.revision_id = 123;
Смотрите также
-
таблицу
taxonomy_term_data,
которая содержит основные данные терминов таксономии -
таблицу
taxonomy_term_field_data,
которая хранит данные полей терминов для разных языков -
таблицу
taxonomy_term_revision,
которая содержит ревизии терминов таксономии -
таблицу
taxonomy_index,
которая обеспечивает индексацию связей терминов с материалами