Можно ли сделать автоматическое добавление столбцов в таблицу?
Делаю выгрузку из 1С (Minishop не используется). Раньше использовал TV для свойств товара, но сейчас, в целях оптимизации, думаю сделать для свойств отдельную таблицу. Можно ли как-то через api в неё столбцы добавлять, чтоб при этом map.inc файл обновлялся?
Есть ещё вариант для свойств товара использовать MIGX-таблицу, но тогда фильтры делать не очень удобно.
Как считаете, какие варианты хранения свойств товара наиболее оптимальны для больших интернет-магазинов?
Есть ещё вариант для свойств товара использовать MIGX-таблицу, но тогда фильтры делать не очень удобно.
Как считаете, какие варианты хранения свойств товара наиболее оптимальны для больших интернет-магазинов?
Комментарии: 8
Может товары проще на miniShop2 переделать?
Там же это все реализовано уже, что свой велосипед изобретать?
Там же это все реализовано уже, что свой велосипед изобретать?
Подскажите, а у опций товара в miniShop2 есть какие-то преимущества перед TV в плане скорости?
Обращение к TV по его имени это два запроса в базу данных. Так как сама сущность TV и значение находятся в разных таблицах. Сначала получить ID TV, затем по идентификаторам TV и ресурса выбрать значение поля.
Обращение к опции минишопа это один запрос. Как следствие разница конечно есть.
Обращение к опции минишопа это один запрос. Как следствие разница конечно есть.
Как-то тестировал 200к товаров с 20 опциями и 20 тв по отдельности. В результате принципиальной разницы не увидел в цифрах. На опциях быстрее примерно на 10..20%. msProd (опции по умолчанию цепляет) БД 0,47....0,51c против pdoRes + 20TV — 0,54...0,58c. При этом в выборку попадало примерно 10к товаров.
Если начинаем фильтровать глубже, то скорость увеличивается.
Если начинаем фильтровать глубже, то скорость увеличивается.
msProd (опции по умолчанию цепляет)А можно как-то выбрать, какие цеплять? На случай, если опций много будет.
В документации нашёл только:
msProducts автоматически подключает и выводи все опции товара в плейсхолдеры вида [[+ключ_опции]].
можно попробовать через параметр select, если не ошибаюсь то добавьте это:
синтаксис не помню, вроде так:
синтаксис не помню, вроде так:
&select=`{"msProductData":"color,ves,dlinna"}`
может кто точнее подскажет.
Если хочешь прям для больших магазинов и чтобы удобно всем управлять и хранить, то почитай про архитектурную модель EAV, её используют почти все популярные движки интернет магазинов, начиная с OpenCart, Magento.
Хорошо бы этот механизм и в miniShop2 когда-то увидеть, то, что сейчас в нем есть уже на 500k товаров с парой десятков характеристик работает печально. Поэтому если нужен крупный магазин, я бы смотрел в сторону:
1) Aimeos (Laravel)
2) Bagisto (Laravel)
Хорошо бы этот механизм и в miniShop2 когда-то увидеть, то, что сейчас в нем есть уже на 500k товаров с парой десятков характеристик работает печально. Поэтому если нужен крупный магазин, я бы смотрел в сторону:
1) Aimeos (Laravel)
2) Bagisto (Laravel)
EAV конечно завезем. Это проговорено и плюс-минус запланировано. Правда пока без конкретики.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.