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

Таблица node

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

Поля

Поле Тип данных Описание
nid int Первичный ключ, уникальный идентификатор ноды. Автоинкрементное число.
vid int Идентификатор версии (revision ID). Ссылается на таблицу node_revision. Для самой актуальной версии ноды это значение совпадает с nid. Позволяет системе отслеживать историю изменений.
type varchar(32) Машинное имя типа материала (ноды), к которому принадлежит данная запись (например, article, page). Связь определяется в таблице node_type.
uuid varchar(128) Уникальный универсальный идентификатор (Universally Unique Identifier) для ноды. Используется для однозначной идентификации контента при миграциях и синхронизации между несколькими сайтами.
langcode varchar(12) Код языка, на котором представлена данная нода (например, en, ru). Поле критически важно для многоязычных сайтов.

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

Когда пользователь создает новый материал на сайте Drupal, система в первую очередь создает запись в таблице node. Этой записи присваивается уникальный nid. Поле type определяет, к какому типу контента относится нода, что диктует, какие поля будут ей доступны (эти поля хранятся в отдельных таблицах, таких как node__body, node__field_*).

Система версий (revisions) является ключевой особенностью Drupal. При каждом изменении ноды может создаваться новая версия. Поле vid связывает базовую запись о ноде из таблицы node с конкретной версией её данных, которые хранятся в node_revision. Это позволяет откатываться к предыдущим версиям контента.

Поле uuid обеспечивает уникальность ноды в распределенных системах. Даже если две ноды на разных сайтах будут иметь одинаковый nid, их uuid гарантированно будут различаться, что исключает конфликты при переносе контента.

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

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

SELECT n.nid, n.title, n.created, u.name as author_name FROM node n INNER JOIN users_field_data u ON n.uid = u.uid WHERE n.type = 'article' AND n.status = 1 ORDER BY n.created DESC LIMIT 10;

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

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