НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
2 of 182 menu

Таблица node_field_data

Таблица node_field_data является одной из центральных таблиц в Drupal для хранения контента. Она содержит основные данные для всех типов материалов (нод) на сайте, такие как заголовок, дата публикации, статус публикации и информация об авторе. Данные в этой таблице зависят от языка, то есть для каждой ноды и каждого языка сайта может существовать отдельная запись с переведенными полями.

Поля

Поле Тип данных Описание
nid int Первичный ключ, уникальный идентификатор ноды. Связывает данные с базовой записью в таблице node.
vid int Идентификатор ревизии (версии) ноды. Внешний ключ для таблицы node_revision. Для самых последних версий нод это значение совпадает с vid в таблице node.
type varchar(32) Машинное имя типа материала (ноды), к которому принадлежит запись (например, article, page). Внешний ключ для таблицы node_type.
langcode varchar(12) Код языка, для которого содержатся данные в этой записи (например, en, ru). Определяет, является ли запись переводом оригинальной ноды.
status tinyint Статус публикации ноды: 1 - опубликована, 0 - не опубликована.
uid int Идентификатор пользователя (автора), создавшего ноду. Внешний ключ для таблицы users_field_data.
title varchar(255) Заголовок ноды для указанного языка.
created int Метка времени Unix, когда нода была создана.
changed int Метка времени Unix последнего изменения ноды.
promote tinyint Флаг, указывающий, promoted ли нода на главную страницу: 1 - да, 0 - нет.
sticky tinyint Флаг, указывающий, является ли нода "прикрепленной" (всегда отображается в начале списков): 1 - да, 0 - нет.
default_langcode tinyint Флаг, указывающий, является ли эта запись данными для языка по умолчанию: 1 - да, 0 - это перевод.
revision_translation_affected tinyint Флаг, используемый системой перевода ревизий для отслеживания того, была ли затронута данная ревизия/язык.

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

При создании новой ноды в системе Drupal сначала создается базовая запись в таблице node, которая содержит мета-информацию, не зависящую от языка. Затем для языка по умолчанию создается запись в node_field_data, куда сохраняются основные поля, такие как заголовок.

Если на сайте включена и настроена система перевода контента (модуль Content Translation), для одного и того же nid в таблице node_field_data может существовать несколько записей с разными значениями langcode. Это позволяет хранить перевод заголовка и других базовых полей ноды на разные языки.

Поля status, promote и sticky являются ключевыми для построения различных списков материалов (например, лент новостей, блогов) и управления их отображением на сайте.

Большинство запросов для вывода списков нод (например, на главной странице, в блоге, в представлениях) обращаются именно к таблице node_field_data, так как она содержит все необходимые для фильтрации и сортировки данные.

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

Выбрать заголовки и даты создания последних 10 опубликованных статей на русском языке:

SELECT nid, title, created FROM node_field_data WHERE type = 'article' AND status = 1 AND langcode = 'ru' ORDER BY created DESC LIMIT 10;

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

  • таблицу node,
    которая содержит базовую, не зависящую от языка мета-информацию о нодах
  • таблицу node_revision,
    которая хранит данные ревизий нод
  • таблицу node_access,
    которая управляет правами доступа к материалам
  • таблицу node_type,
    которая хранит информацию о типах материалов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить