Всем добрый день.
Суть разработки:Есть класс (инфоблок определенного типа), например ноутбуки. Данному классу создаются характеристики (свойства инфоблока), которые имеют ряд дополнительных характеристик, например тип сравнения, выводить ли эту характеристику в фильтр, тип фильтра, ед. измерения и т.п. (эти характеристики хранятся в отдельном инфоблоке)
Типы характеристик идентичны свойствам инфоблока (а как же иначе
)
Всё это богатство редактируется из единой формы. Т.е. можно динамически для класса создать характеристику, поместить ее в отдельную группу, изменить содержание характеристики типа список (причем список как свойство, так и другой инфоблок).
Теперь следующий шаг - это
создание единых характеристик для классов (базовый класс).
Есть два варианта.
1/ создаем единый инфоблок для базового класса и его на другие классы (другие инфоблоки). Например создал новое свойство а оно попадет через связь в остальные классы (с выводом в отдельной вкладке на форме редактирования элемента класса (инфоблока) и т.п.)
2/ не делать этого, а при создании нового класса просто
создавать дефолтные характеристики.
Достоинства 1го способа:централизованное хранение базовых характеристик для всех классов (цена, цвет и т.п.)
если изменим в одном месте - то отразиться на все классы
Недостатки 1го способа:А как искать значение? Как реализовать сравнение, фильтрацию? Придется соединять два инфоблока и делать лишние запросы к БД
Достоинства 2го способа:Храниться все в классе. Только свистни и все сравниться и найдется (отфильтруется).
Недостаток 2го способа:Сложно что-либо изменить. Например решил админ добавить свойство цена старая - и понеслась .. по кочкам. 20 классов - 20 изменений.
Вот здесь у меня возник вопрос. Что выбрать? Что бы и будущюим разработчикам было не сложно поддерживать этот модуль, а админу не сложно админить, и при том, что бы не загружать Битрик лишними запросами при работе пользователей.