Таблица taxonomy_term_data
Таблица taxonomy_term_data служит основным хранилищем для всех терминов словарей таксономии в Drupal. Термины используются для категоризации и организации контента на сайте. Каждый термин принадлежит к определенному словарю (taxonomy_vocabulary).
Поля
| Поле | Тип данных | Описание |
|---|---|---|
tid |
int |
Первичный ключ, уникальный идентификатор термина. Автоматически инкрементируется. |
vid |
varchar(32) |
Идентификатор словаря (vocabulary), к которому принадлежит термин. Внешний ключ к таблице taxonomy_vocabulary.
|
uuid |
char(128) |
Универсальный уникальный идентификатор (UUID) для термина. Используется для переноса контента между сайтами. |
langcode |
varchar(12) |
Код языка, на котором представлен термин. Соответствует языкам, настроенным в системе. |
Как это работает
Администратор сайта создает словари (например, "Теги", "Категории") в административном интерфейсе Drupal. Каждому словарю соответствует машинное имя (vid). После создания словаря в него можно добавлять термины, которые сохраняются в таблице taxonomy_term_data.
Поля, связанные с терминами (название, описание), хранятся не в этой таблице, а в таблице taxonomy_term_field_data, что является частью концепции Entity API в Drupal. Таблица taxonomy_term_data содержит только базовую метаинформацию, связывающую термин со словарем и определяющую его язык.
Термины присваиваются материалам (нодам) через поле типа "Entity reference". Когда пользователь создает или редактирует материал, он может выбрать один или несколько терминов из доступных словарей для его категоризации.
Иерархическая структура терминов (родитель-потомок) хранится в отдельной таблице taxonomy_term_hierarchy. Это позволяет создавать многоуровневые категории.
Пример SQL-запроса
Выбрать все термины из словаря с machine name 'tags' вместе с их названиями:
SELECT td.tid, tfd.name, td.vid
FROM taxonomy_term_data td
INNER JOIN taxonomy_term_field_data tfd ON td.tid = tfd.tid
INNER JOIN taxonomy_vocabulary tv ON td.vid = tv.vid
WHERE tv.machine_name = 'tags'
ORDER BY tfd.name;
Смотрите также
-
таблицу
taxonomy_term_field_data,
которая хранит данные полей терминов (название, описание) -
таблицу
taxonomy_vocabulary,
которая содержит словари таксономии -
таблицу
taxonomy_index,
которая индексирует связи терминов с материалами -
таблицу
taxonomy_term_hierarchy,
которая хранит иерархию терминов