Pull to refresh

Comments 2

Хороший подход в плане того, что все наименования будут одинаково отформатированы. Скажите, пожалуйста, пользователи запускают генерацию когда вводят накладные или заранее? И еще вопросы: генерится только текст или еще поля для отбора (к примеру нужно найти все шурупы диаметром 3 мм и длиной от 16 до 20 мм); рассматривался ли вариант вести учет в разрезе характеристик, когда в таблице наименований товаров будет только Шуруп, а длина, диаметр и т.д — в других таблицах?
Генерацию желательно запускать заранее, чтобы на момент ввода накладной наименование товара было в таблице. Но мы предусмотрели возможность ввода накладной, без этого требования. Но тогда просто накладная не попадает на следующий шаг, пока не будет добавлена «правильная» запись в таблицу товаров.
Поля для отбора мы тоже генерируем- есть дополнительная таблица атрибутов товара (да, это антипаттерн Entity-Attribute-Value)
CREATE TABLE `good_attribute` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `value` varchar(32) NOT NULL,
  `good_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
)

Но пока эта таблица не используется- оставлена на будущее, т.к. мы используем обычный текстовый поиск, т.е. пользователь вводит что-то вроде

Шур 4 10

И мы показываем ему первые 10 вариантов, где встречаются эти подстроки. Работает довольно быстро- из нескольких миллионов позиций выборка происходит за 1-5 секунд.
Разные таблицы для параметров мы не используем т.к. заранее мы не знаем какие параметры нужны будут пользователю (для метизов это одни параметры, для труб или оборудования- совсем другие), а генерацией таблиц «на лету» мы решили не увлекаться.
Sign up to leave a comment.

Articles