Структура таблиц Инфоблоков в 1С-Битрикс
В системе 1С-Битрикс инфоблоки организованы через набор связанных таблиц. Логика хранения данных отличается в зависимости от версии инфоблока (1.0 или 2.0).
Общие таблицы (Метаданные и Структура)
Эти таблицы содержат основные настройки, дерево разделов и базовые поля элементов, независимо от версии:
b_iblock— реестр всех инфоблоков системы.b_iblock_type— типы инфоблоков.b_iblock_section— структура разделов (категорий).b_iblock_element— основные поля элементов (ID, Name, Code, Active и др.).b_iblock_property— описание (метаданные) свойств.
Хранение значений свойств (1.0 vs 2.0)
Главное различие кроется в способе записи пользовательских данных.
| Характеристика | Инфоблоки 1.0 | Инфоблоки 2.0 |
|---|---|---|
| Таблица свойств | b_iblock_element_property (одна общая таблица для всех ИБ в системе) | b_iblock_element_prop_s{ID} (индивидуальная таблица для каждого ИБ) |
| Множественные свойства | Хранятся в общей таблице b_iblock_element_property | Выносятся в таблицу b_iblock_element_prop_m{ID} |
| Производительность | Ниже. Требуется много JOIN для сборки одного элемента. | Выше. Все значения свойств элемента хранятся в одной строке. |
Использование через ORM (D7)
Для работы с этими таблицами в современном коде Битрикс рекомендуется использовать ORM-классы:
- Для элементов:
\Bitrix\Iblock\ElementTable - Для ИБ 2.0 можно генерировать сущности:
\Bitrix\Iblock\PropertyIndex\Storage::getEntity($iblockId)