это таблица i_domain), добавляем в этот хл блок множественное поле типа строка называем его например uf_test. БУС автоматически создает зачем-то сразу же отдельную таблицу i_domain_uf_test
При редактировании записей в хлблоке и заполнении этого множественного свойства, данные сохраняются как в таблицу хл блока (в сериализованном виде), так и в i_domain_uf_test, причем mysql тип в первом случае будет text а в отдельной таблице - varchar(255)
Сompileentity при этом генерирует дополнительные поля-связки с названием вида UF_TEST_SINGLE
Собственно вопрос: Зачем битрикс это делает? Хранение множественного свойства итак предполагает большие данные, зачем их дублировать еще в одну таблицу (которая не используется при этом на сколько я понимаю)?
Это потому,что user_fields(в том числе у hlblock) относятся к главному модулю и работают также,как,например,свойства разделов. Соответственно множественные поля хранятся отдельно. Можно сказать, так исторически сложилось. Я думаю данные все-таки не дублируются ,а другая таблица каким-либо образом привязывается. Все вышесказанное - чисто теоретически)
Обсуждают сегодня