Daos
Новичок
Загрузка прайс-листов
Друзья, такая проблема. Есть каталог товаров (более 10.000).
При выборе товара выводится список его продавцов с ценой.
От n кол-ва продавцов приходят прайс-листы (в основном в Excel) совершенно разного оформления, да плюс к тому одно и то же название товара в разных прайсах может быть написано по разному. Задача максимально автоматизировать процес загрузки любого прайса в базу (то есть привязки товара из прайса, товару каталога).
Как мне видится на данный момент эта задача:
1. Получаем все товары из базы.
2. Начинаем построчно проходится по файлу прайса (я опускаю здесь преобразование прайса к csv)
3. Сравниваем имя товара в прайсе с именем из базы, при чём вхождение одного в другое и наоборот, так как в прайсе может быть неполное название товара, так и наоборот.
4. Если совпадение чёткое, товар тот, заносим цену в базу, если не полное но есть вхождение, выносим оператору для подтверждения. Если совпадения и вхождения не найдено, новый товар, что с ним делать щас не важно. Положим что 99% товаров уже есть в каталоге.
5. И так по всему прайсу.
Это мега ресурсоёмко и неоптимизировано, то есть надо на каждую строку прайса натянуть всю базу товаров. Как вариант можно на каждую строку прайса делать запрос в базу по LIKE, но это тоже не менее ресурсоёмко.
Других мыслей организации этой процедуры пока в голову не пришло. Помогите идеей?
Друзья, такая проблема. Есть каталог товаров (более 10.000).
При выборе товара выводится список его продавцов с ценой.
От n кол-ва продавцов приходят прайс-листы (в основном в Excel) совершенно разного оформления, да плюс к тому одно и то же название товара в разных прайсах может быть написано по разному. Задача максимально автоматизировать процес загрузки любого прайса в базу (то есть привязки товара из прайса, товару каталога).
Как мне видится на данный момент эта задача:
1. Получаем все товары из базы.
2. Начинаем построчно проходится по файлу прайса (я опускаю здесь преобразование прайса к csv)
3. Сравниваем имя товара в прайсе с именем из базы, при чём вхождение одного в другое и наоборот, так как в прайсе может быть неполное название товара, так и наоборот.
4. Если совпадение чёткое, товар тот, заносим цену в базу, если не полное но есть вхождение, выносим оператору для подтверждения. Если совпадения и вхождения не найдено, новый товар, что с ним делать щас не важно. Положим что 99% товаров уже есть в каталоге.
5. И так по всему прайсу.
Это мега ресурсоёмко и неоптимизировано, то есть надо на каждую строку прайса натянуть всю базу товаров. Как вариант можно на каждую строку прайса делать запрос в базу по LIKE, но это тоже не менее ресурсоёмко.
Других мыслей организации этой процедуры пока в голову не пришло. Помогите идеей?