Типы полей в базе данных
Стандартные поля базы
В таблице ниже представлен список стандартных полей базы, их соответствия в API, типы данных, а также примеры значений, которые можно использовать.
| Поле в базе | Имя поля в API | Тип поля в UI | Тип поля в API | Пример значения |
|---|---|---|---|---|
| Строка/Email | string | "example@example.com" | ||
| Телефоны | phones | Список телефонов | array | ["+79001234567"] |
| Имя | _fname | Строка | string | "John" |
| Фамилия | _lname | Строка | string | "Doe" |
| Дата рождения | _bdate | Дата | string | "2001-12-31" "2001-12-31T00:00+03:00" Время можно передавать только через API. |
| Пол | _sex | Список | string | "male" "female" |
| Дата рег. | _regdate | Дата | string | "2023-12-31" "2023-12-31T23:59:59+03:00" |
| IP адрес рег. | _regip | IP | string | "127.0.0.1" |
| Город рег. | _regcity | Строка | string | "Москва" |
| Страна рег. | _regcountry | Строка | string | "Russian Federation" "RU" |
| Ссылка рег. | _regurl | Строка | string | "https://example.com" |
| IP адрес | _ip | IP | string | "127.0.0.1" |
| Город | _city | Строка | string | "Москва" |
| Страна | _country | Строка | string | "Russian Federation" "RU" |
| Регион | _region | Строка | string | "Europe/Moscow" |
| Индекс | _postal_code | Строка | string | "190000" |
| Временная зона | _tz | Строка | string | "Europe/Moscow" |
| Поставщик | _vendor | Строка | string | "form #30" |
Дополнительные поля базы
От типа поля зависит, какие операторы будут доступны в сегментах и в динамических переменных шаблона, поэтому рекомендуем внимательно выбирать тип дополнительного поля в базе.
| Тип поля в UI | Тип поля в API | Пример значения |
|---|---|---|
| Целое число | int | 100 |
| Число с точкой | float | 100.5 |
| Строка | string | "string value" |
| Дата | string | "2024-05-27T12:00:00Z" |
| Boolean | boolean | true false |
| Список | string | "Вариант 1" Также можно передавать значение в виде числа, например, 1. Число соответствует порядковому номеру элемента в списке. |
| IP | string | "127.0.0.1" |
| Теги | array | [ "Тег 1", "Тег 2", "Тег 3" ] |
| Объект | object | { "key_1": { "sub_key": "sub_value" } } |
| Массив объектов | array of objects | [ { "key_1": "value_1" }, { "key_2": "value_2" } ] |
При API-импорте или обновлении полей с типом "Теги" их значения будут перезаписаны, а не добавлены к уже существующим. Чтобы добавить новые значения, не удаляя старые, следует воспользоваться функциональным обновлением.
Допустимые форматы и ограничения
Платформа ожидает определённые форматы значений для каждого типа поля. Убедитесь, что импортируемые данные соответствуют указанным требованиям, иначе система не сможет обработать их корректно.
- Email — формат должен соответствовать стандартам RFC. Для валидации используется регулярное выражение:
^[-a-z0-9!#$%&'*+/=?^_{|}~]+(\.[-a-z0-9!#$%&'*+/=?^_{|}~]+)*@((?:localhost|([a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*([a-z]{1,24})))$
-
Телефоны — номер должен соответствовать международному формату (без пробелов, дефисов и других разделителей, кроме плюса в начале). Подробнее со стандартом можно ознакомиться здесь.
-
Даты — записываются в формате RFC 3339 (ISO 8601) с указанием часового пояса.
-
Страна — принимается в виде двухбуквенного кода ISO 3166-1 alpha-2 или полного названия (в любом регистре).
-
Пол — допустимые значения описаны в этой статье.
-
Поставщик — длина строки не больше 26 символов.
-
IP — IPv4 формат.
-
Строка — не рекомендуется хранить более 100 КБ текста в одном поле.
-
Объекты и массивы объектов — можно записывать только одноранговые объекты или одноранговые объ екты, вложенные в другие объекты. Если вы используете объекты с более сложной структурой, подключите SQL базу и создайте запросы для выборки профилей. В именах полей объектов допустимо использовать только латинские буквы (в любом регистре), цифры от 0 до 9, символ нижнего подчеркивания
_и дефис-. Можно хранить данные типаint,float,string,boolean. -
Ограничение на объем данных одного профиля в базе составляет 16 МБ, включая все метаданные. Однако не рекомендуется хранить суммарно больше 2 МБ в дополнительных полях профиля.
Соответствие полей базы и элементов формы
Если вы настраиваете импорт данных профиля из полей формы в поля базы, убедитесь, что вы используете корректный тип поля для каждог о элемента формы.
| Элемент формы | Поле в базе |
|---|---|
| Короткий текст | Доп. поле с типом “Строка” |
| Стандартное поле “Email” | |
| Номер телефона | Стандартное поле “Телефоны” |
| Длинный текст | Доп. поле с типом “Строка” |
| Число | Доп. поле с типом “Целое число” |
| Да/Нет | Доп. поле с типом “Boolean” |
| Один вариант | Доп. поле с типом “Строка” |
| Множественный выбор | Доп. поле с типом “Теги” |
| Выпадающий список | Доп. поле с типом “Теги” |
| Дата | Стандартное или доп. поле с типом “Дата” |
| Диапазон | Доп. поле с типом “Целое число” |
Хоть вы и можете записать все данные пользователя в строковые поля, это ограничит возможности для дальнейшей сегментации. Например, если дата будет записана в строковое поле, вы не сможете использовать операторы сравнения "дата меньше" или "дата больше" в сегментах или шаблонах.
