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

Таблица history

Таблица history отслеживает, когда пользователь в последний раз просматривал конкретный узел (ноду) на сайте. Эта информация является ключевой для функционала "нового" и "обновленного" контента, позволяя пользователям видеть, что изменилось с их последнего визита.

Поля

Поле Тип данных Описание
uid int Идентификатор пользователя (users.uid), который просматривал узел. Внешний ключ для таблицы users. Не может быть 0.
nid int Идентификатор узла (node.nid), который был просмотрен. Внешний ключ для таблицы node. Не может быть 0.
timestamp int Метка времени Unix, указывающая, когда пользователь в последний раз просматривал этот узел. Используется для сравнения с временем последнего изменения узла (node.changed).

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

Когда аутентифицированный пользователь заходит на страницу узла, система проверяет наличие записи в таблице history для этой пары uid-nid. Если запись существует, она обновляет поле timestamp текущим временем. Если записи нет - создается новая.

Модуль Node использует эти данные для отображения статуса "нового" или "обновленного" контента. При выводе списка узлов (например, на странице треккера или в представлениях) время последнего просмотра из history сравнивается со временем создания (node.created) и последнего изменения (node.changed) узла.

Узел считается "новым", если он был создан после момента последнего просмотра пользователем любой ноды (определяется по максимальному timestamp в history для этого пользователя). Узел считается "обновленным", если он был изменен после момента его последнего просмотра этим пользователем.

Важно отметить, что данная таблица работает только для аутентифицированных пользователей. Для анонимных пользователей отслеживание истории просмотров обычно реализуется через cookies или не ведется вовсе.

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

Получить историю просмотров конкретного пользователя с информацией о узлах можно следующим запросом:

SELECT h.timestamp, n.nid, n.title, n.changed FROM history h INNER JOIN node n ON h.nid = n.nid WHERE h.uid = 5 ORDER BY h.timestamp DESC;

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

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