Таблица webform_submission_data
Таблица webform_submission_data является центральным хранилищем данных для модуля Webform в Drupal. Она содержит все значения полей для каждой отправленной формы, организованные в формате "ключ-значение". Эта структура позволяет гибко хранить данные различных типов полей без необходимости изменять схему базы данных при добавлении новых полей в формы.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
sid |
int |
Идентификатор отправки (submission ID). Внешний ключ, связывающий данные с основной информацией об отправке в таблице webform_submission.
|
webform_id |
varchar(32) |
Идентификатор веб-формы. Внешний ключ для таблицы webform.
|
name |
varchar(128) |
Машинное имя поля веб-формы, для которого хранится значение. |
property |
varchar(128) |
Свойство значения. Обычно пустая строка для простых значений или название свойства для составных значений. |
delta |
int |
Индекс значения для полей с множественными значениями. Для полей с одним значением обычно равен 0.
|
value |
text |
Значение поля формы. Для большинства полей хранится строковое представление данных. |
Как это работает
Когда пользователь отправляет веб-форму, создается запись в таблице webform_submission с основными метаданными (время создания, автор, форма и т.д.). Затем для каждого поля формы создается одна или несколько записей в таблице webform_submission_data.
Структура "ключ-значение" позволяет хранить данные различных типов полей (текстовые поля, выпадающие списки, радио-кнопки, файлы) в одной таблице без необходимости изменять схему базы данных при добавлении новых полей в формы.
Для полей с множественными значениями (например, когда можно добавить несколько элементов) создаются несколько записей с одинаковым name, но разными значениями delta (0, 1, 2 и т.д.).
Поле property используется для составных данных. Например, для поля "Адрес" могут создаваться отдельные записи для улицы, города, почтового индекса и т.д., где property указывает тип сохраняемого значения.
Пример SQL-запроса
Получить все данные для конкретной отправки формы можно следующим запросом:
SELECT name, property, delta, value
FROM webform_submission_data
WHERE sid = 123
ORDER BY name, delta;
Найти все отправки формы с определенным значением в поле:
SELECT sd.sid, sd.value
FROM webform_submission_data sd
WHERE sd.webform_id = 'contact'
AND sd.name = 'email'
AND sd.value LIKE '%@example.com';
Смотрите также
-
таблицу
webform_submission,
которая хранит метаинформацию об отправках форм -
таблицу
webform,
которая содержит определение веб-форм -
таблицу
webform_element,
которая хранит информацию об элементах форм -
таблицу
webform_log,
которая содержит журнал событий веб-форм