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

Таблица field_storage_config

Таблица field_storage_config является системной таблицей Drupal, которая хранит конфигурационные данные для хранилищ полей. Она определяет, какие поля существуют в системе, их тип, настройки и то, как они связаны с конкретными типами сущностей (ноды, пользователи, таксономия и т.д.). Эта конфигурация управляется через Drupal Configuration API и обычно экспортируется в YAML-файлы.

Поля

Поле Тип данных Описание
id varchar(255) Первичный ключ. Уникальный машинный идентификатор конфигурационной записи хранилища поля. Имеет вид field.storage.[entity_type].[field_name].
field_name varchar(32) Машинное имя поля (например, field_image, body). Уникально в рамках одного типа сущности.
entity_type varchar(32) Тип сущности, к которой прикреплено поле (например, node, user, taxonomy_term).
type varchar(32) Тип поля (например, text, image, entity_reference, list_string). Определяет, какие данные может хранить поле.
settings blob BLOB-поле, содержащее сериализованные настройки хранилища поля. Сюда входят настройки, специфичные для типа поля, которые влияют на то, как данные хранятся в БД.
module varchar(32) Имя модуля, который предоставляет тип поля.
locked tinyint Флаг, указывающий, заблокировано ли хранилище поля для изменений через пользовательский интерфейс (0 - разблокировано, 1 - заблокировано). Заблокированные поля обычно создаются кодом модуля.
cardinality int Количество значений, которое может содержать поле. -1 означает неограниченное количество значений.
translatable tinyint Флаг, указывающий, является ли поле переводимым (0 - нет, 1 - да). Определяет, будут ли данные этого поля храниться отдельно для каждого языка.
deleted tinyint Флаг, указывающий, что хранилище поля было помечено на удаление (0 - активно, 1 - удалено). В Drupal данные поля не удаляются сразу, а помечаются этим флагом.

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

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

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

При сохранении сущности (ноды, пользователя) система обращается к конфигурации хранилища, чтобы понять, в какие таблицы базы данных записывать значения полей. Например, для простых строковых полей данные будут записаны в field_revision_body, а для файлов - в field_revision_field_image.

Поле deleted реализует механизм "мягкого" удаления. Когда поле удаляется, его запись в field_storage_config помечается как удаленная, но физически не удаляется из базы до тех пор, пока не будут очищены все данные этого поля. Это позволяет откатить удаление поля или корректно обработать его данные в процессе пакетного удаления.

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

Получить список всех хранилищ полей для сущности "нода", которые предоставляет модуль image:

SELECT id, field_name, type, cardinality, translatable FROM field_storage_config WHERE entity_type = 'node' AND module = 'image';

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

  • таблицу field_config,
    которая хранит конфигурацию привязки полей к пакетам полей и типам сущностей
  • таблицу config,
    которая является общей таблицей для хранения конфигураций Drupal
  • таблицу node,
    которая хранит основные данные материалов (нод)
  • таблицу cache_discovery,
    в которой кэшируется информация о обнаруженных полях и их определениях
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить