Автор |
Сообщение |
noobas Эксперт |
|
суть задачи: есть 2 прайс листа в экселе, 2 таблицы в базе мускул,
уже написанный импортер из экселя в мускул, есть скрипт для очистки базы от мусора(аля пустые позиции и так далее).
надо каким то макаром сделать сопоставление таблиц товаров из прайсов для дальнейшего парсинга _nix.ru
вчера попытался сделать скрипт для сопоставления но чет не хватило мозгов для хорошего запроса ибо LIKE %$v% не помогает в моём случае, слишком большое расхождение позиций в прайсах =(
если надо могу скинуть кусок кода который я настрочил =)
если можно то скньте пример, если вломы то хотя бы пните в какую сторону курить =)
пример позиции из прайса:
Цитата: |
Жёсткий диск 500 Gb SATA II Western Digital GP (IntelliPower) WD5000AADS (cache 32Mb) |
это из моего прайса
а вот из никса
Цитата: |
HDD 500 Gb SATA-II 300 Western Digital Caviar Green <WD5000AADS> 32Mb |
|
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
А как тут привяжешься, только если у них для каждого типа товаров стандартизированна форма наименования.
так если кэша нет, то не будет в конце этого - 32мб. - с конца не привяжешься к артикулу, допустим.
хз, хз... |
|
|
|
|
dipp Эксперт |
|
|
|
|
AlexRock Гуру |
|
Richard Ferlow писал(а): |
А как тут привяжешься, только если у них для каждого типа товаров стандартизированна форма наименования. |
noobas писал(а): |
пните в какую сторону курить =) |
Для каждого типа товаров искать совпадающие детали и смотреть в сторону регулярных выражений. Например, если строка начинается на "HDD" и в ней есть подстрока "WD5000AADS", то в твоём прайсе для этой строки нужно искать сопоставление в строках, начинающихся на "Жёсткий диск" и тоже имеющих подстроку "WD5000AADS". Если такое совпадение найдено, то устанавливается сопоставление. |
|
|
|
|
noobas Эксперт |
|
однако после недолгого курения манов по сравнению строк и регуляркам решил не ипать мозги с этим всем(вспомнил туеву хучу разных моделей ноутбуков и прочей гадости которая явно будет мне ставить огромное количество костылей)
даже если спарсить по регулярке из моей базы некоторую часть то не факт что в базе никсов эта часть будет в таком же виде, поигрался со сравнением строк, аще без вариантов, есть маленькие результаты но они не дадут даже 60% работы на деле.
в итого: создаем 3ю таблицу и в ней руками долго и мутороно делаем соответсвие)))
в файле моего прайса 3к строк)))
ЗЫ: некоторую часть прайса можно сопоставить с прайсами никса аля винты у которых явно забита конкретная модель как в моём примере |
|
|
|
|
AlexRock Гуру |
|
noobas
Если тебе так охота никсовые строчки прайса, то почему бы просто не копировать их к себе в прайс? Грубо говоря, из никсового прайса удалил те строки, которых у тебя в прайсе нет, а чего у них нету, дописал себе. Это легче, если вручную, по-моему, тем более, если соответствие один к одному (зачем таблица связей? - достаточно столбца идентификаторов). |
|
|
|
|
noobas Эксперт |
|
уже была такая идея)
3к строк против 7к строк =)
свежий прайс поставщика с наличием на скалде приходит каждое утро... |
|
|
|
|
noobas Эксперт |
|
тут фишка в том что есть внутренняя база с большим количеством поставщиков на неё вообще пофигу, аля передача в гете маркет.яндекс.ру девайса, да и куча других фенечек которые юзают манагеры.
в конкретном случае делается онлайн каталог на сайт, а для этого желательно что то парсить =))) не руками же 3к товаров забивать)) |
|
|
|
|
|