Таблица taxonomy_term_field_revision
Таблица taxonomy_term_field_revision предназначена для хранения ревизий данных полей терминов таксономии. В отличие от основной таблицы taxonomy_term_data, которая хранит только актуальную версию каждого термина, эта таблица сохраняет историю всех изменений полей, обеспечивая возможность отката к предыдущим версиям и аудит изменений.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
tid |
int |
Уникальный идентификатор термина. Внешний ключ к таблице taxonomy_term_data.
|
revision_id |
int |
Уникальный идентификатор ревизии термина. Внешний ключ к таблице taxonomy_term_revision.
|
langcode |
varchar(12) |
Код языка, для которого хранятся данные полей в этой ревизии. |
status |
tinyint |
Статус опубликованности термина: 1 - опубликован, 0 - не опубликован.
|
name |
varchar(255) |
Название термина на указанном языке. |
description__value |
longtext |
Основное значение описания термина. |
description__format |
varchar(255) |
Формат текста описания (plain_text, basic_html, full_html и т.д.). |
changed |
int |
Время последнего изменения этой ревизии в формате UNIX timestamp. |
default_langcode |
tinyint |
Флаг, указывающий является ли этот язык языком по умолчанию для термина: 1 - да, 0 - нет.
|
revision_translation_affected |
tinyint |
Флаг, указывающий затрагивает ли данная ревизия перевод термина. |
Как это работает
Когда в Drupal включена система ревизий для терминов таксономии, каждое изменение полей термина создает новую запись в таблице taxonomy_term_field_revision. Эта таблица работает в связке с taxonomy_term_revision, которая хранит метаинформацию о ревизиях.
Для каждого термина может существовать несколько ревизий, каждая из которых представляет собой снимок состояния полей термина в определенный момент времени. Это позволяет администраторам просматривать историю изменений и при необходимости восстанавливать предыдущие версии терминов.
Система также поддерживает мультиязычность: для каждого языка термина хранятся отдельные ревизии полей. Поле default_langcode помогает определить, какие данные являются основными для термина.
При запросе данных термина Drupal обычно обращается к таблице taxonomy_term_data, которая содержит только актуальные версии полей. Однако при просмотре истории изменений или работе с ревизиями система использует данные из taxonomy_term_field_revision.
Пример SQL-запроса
Получить историю изменений названия и описания для конкретного термина можно следующим запросом:
SELECT
tfr.revision_id,
FROM_UNIXTIME(tfr.changed) as change_date,
tfr.name,
SUBSTRING(tfr.description__value, 1, 100) as description_preview
FROM taxonomy_term_field_revision tfr
WHERE tfr.tid = 42
ORDER BY tfr.revision_id DESC;
Смотрите также
-
таблицу
taxonomy_term_data,
которая хранит основные данные терминов таксономии -
таблицу
taxonomy_term_revision,
которая хранит метаинформацию о ревизиях терминов -
таблицу
taxonomy_term__parent,
которая хранит иерархические связи между терминами -
таблицу
taxonomy_index,
которая обеспечивает индексацию терминов для связанных материалов