Таблица workspace
Таблица workspace является центральной таблицей модуля Workspaces, который предоставляет возможности для создания нескольких стадий контента (например, "Stage", "Live") и управления публикацией изменений между ними. Каждая запись в таблице представляет отдельное рабочее пространство.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
id |
varchar(128)
| Уникальный машинный идентификатор рабочего пространства. Используется для программного обращения к workspace. |
uid |
int
|
Идентификатор пользователя, создавшего рабочее пространство. Внешний ключ к таблице users.
|
label |
varchar(255)
| Человекочитаемое название рабочего пространства, отображаемое в интерфейсе администратора. |
created |
int
| Временная метка создания рабочего пространства в формате UNIX timestamp. |
changed |
int
| Временная метка последнего изменения рабочего пространства в формате UNIX timestamp. |
parent |
varchar(128)
| Идентификатор родительского рабочего пространства, если текущее workspace является его потомком. Используется для создания иерархии workspace. Может быть NULL. |
Как это работает
Модуль Workspaces позволяет редакторам работать с контентом в изолированной среде, не затрагивая основное (Live) рабочее пространство. Пользователи могут создавать несколько workspace для разных целей (например, "Релиз_Апрель", "Кампания_Лето").
Когда пользователь активирует определенное рабочее пространство, все изменения контента (создание, редактирование, удаление сущностей) записываются в соответствующие таблицы ревизий (например, node_revision), но помечаются как принадлежащие этому workspace. Это позволяет одновременно вести работу над разными наборами изменений.
После завершения работы в workspace пользователь может выполнить деплой (публикацию) изменений в Live-пространство. Система сравнивает изменения между workspace и целевым пространством, разрешает конфликты и применяет все изменения атомарно.
Поле parent позволяет создавать иерархические цепочки workspace. Например, можно создать workspace "Верификация" на основе "Stage", а затем выполнить деплой из "Верификации" в "Live". Это обеспечивает многоступенчатый процесс контроля качества контента.
Пример SQL-запроса
Получить список всех рабочих пространств с информацией об их создателях можно следующим запросом:
SELECT w.id, w.label, w.created, u.uid, u.name as username
FROM workspace w
LEFT JOIN users u ON w.uid = u.uid
ORDER BY w.created DESC;
Смотрите также
-
таблицу
users,
которая хранит учетные записи пользователей -
таблицу
node,
которая содержит основные данные материалов -
таблицу
node_revision,
которая хранит ревизии материалов -
таблицу
workspace_association,
которая связывает сущности с рабочими пространствами