Типы полей в базе данных
Стандартные поля базы
В таблице ниже представлен список стандартных полей базы, их соответствия в 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" } ] |
Допустимые форматы и ограничения
Платформа ожидает определённые форматы значений для каждого типа поля. Убедитесь, что импортируемые данные соответствуют указанным требованиям, иначе система не сможет обработать их корректно.
- 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” |
Один вариант | Доп. поле с типом “Строка” |
Множественный выбор | Доп. поле с типом “Теги” |
Выпадающий список | Доп. поле с типом “Теги” |
Дата | Стандартное или доп. поле с типом “Дата” |
Диапазон | Доп. поле с типом “Целое число” |
Хоть вы и можете записать все данные пользователя в строковые поля, это ограничит возможности для дальнейшей сегментации. Например, если дата будет записана в строковое поле, вы не сможете использовать операторы сравнения "дата меньше" или "дата больше" в сегментах или шаблонах.