|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
Здравствуйте. Мне была поставлена такая задача: загрузка товаров из 5 xml файлов. Выгрузку сделал и для товаров с атрибутами и для категорий. Пока создал отдельные таблицы для каждого источника ( 5 таблиц товаров, 5 таблиц категорий ). Дальше не знаю как поступить, асортимент выгруженных товаров практически идентичный и категории пресекаются, а их id, parent_id в каждой таблице разный. Вроде логичным кажется совместить товары в одну таблицу, но надо придумать что делать с категориями. Пока создал такую таблицу: CREATE TABLE `category` ( `id` int(11) UNSIGNED NOT NULL, `parent_id` int(11) UNSIGNED DEFAULT NULL, `name` varchar(64) DEFAULT NULL, `garda_id` int(11) DEFAULT NULL, `glem_id` int(11) DEFAULT NULL, `issaplus_id` int(11) DEFAULT NULL, `karree_id` int(11) DEFAULT NULL, `olla_id` int(11) DEFAULT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Так сказать таблицу "соответствий": определенному id категории соответствует определенный id из выгруженного файла (для производителя "Гарда" он помещается в ячейку garda_id, для "Карри" - karree_id и т.д. А как дальше поступить не знаю. На ум приходят такие варианты: 1. Привязывать нужные id при преобразовании xml товаров (Но категорий штук 60, файлов выгружается от 1000 до 20000 - придется каждый гонять черз цикл - искать соответствия - время выгрузки думаю заметно выростет, - хотя это не особо критично. 2. Средствами MySQL перегонять потом товары в общую таблицу где на основе таблицы соответствий им будет назначена нужная категория. 3. написать скрипт который будет перегонять товары в общую таблицу тоже обращаясь к таблице соответствий. 4. Писать сложные SELECT запросы, в которых будет обращениев таблицу соответствий и исходя из нее будет отдельная выборка для каждого производителя. Может вопрос и идиотский, задач с выгрузкой из разных источников и совмещением из разных каталогов дела не имел. Подскажите наиболее правильное решение такой ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 05:23 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
Диапазоны ID в разных источниках могут пересекаться (и соответственно значения ID - совпадать)? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 09:16 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
Да. мало того что везде разные `id` g при одинаковом `name` , так еще и пересекаются. Поэтому когда в одну таблицу пробовал сводить, то уникальный индекс был из двух столбцов` id` и `source` например glem. Вот думаю можно написать скрипт который перелопатит все таблицы и соберет в одну (яимею ввиду товары). А то при загрузке xml не хочу дополнительные циклы писать. Просто может есть какой-то другой способ для MariaDB/MySQL .На форуме упоминалось наследование, Вроде как для похожей в принципе ситуации - но я посмотрел - это PostgreSQL. Что мне не очень подходит. Куда дальше копать пока не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 09:26 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
Если Вы хотите слить всё в одну таблицу, то Вам в любом случае придётся формировать собственный суррогат в качестве ID. Надо ли Вам будет мапить старые ID на новые - зависит от ряда факторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 09:44 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
Да, думал узнать как обычно люди делают в таких ситуациях. А то "будет свой велосипед с квадратными колесами". Потому как я вижу такой вариант - достал товар из таблицы производителя №1, посмотрел какому моему id каталога соответствует его id категории, заменил добавил в общую таблицу, першел к следующему товару ... потом тоже для производителя №2, 3 и т.д. Думал, есть какое-то более удобное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 09:58 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
guest_XY Да, думал узнать как обычно люди делают в таких ситуациях. . Ситуация стандартная. "Обычно" не бывает. В каждом случае есть нюансы, имеющие первостепенное влияние на принятие решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 10:36 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
guest_XY Может вопрос и идиотский, задач с выгрузкой из разных источников и совмещением из разных каталогов дела не имел. Подскажите наиболее правильное решение такой ситуации. Технически это делается так. В базе создается отдельная схема. Обычно STAGING. И туда сливаются сырые данные со всех-всех источников. Там они - чистятся. Обогащаются от справочников. Или наоборот нормализуются. И когда достигнуты какие-то критерии (например count(*) соответствует ожиданиям плюс минус проценты) то эти данные переливаются в основную схему. По поводу того ...не знаю как поступить, асортимент выгруженных товаров практически идентичный и категории пресекаются, а их id, parent_id в каждой таблице разный. Вроде логичным кажется совместить товары в одну таблицу, но надо придумать что делать с категориями. ты как программист не в состоянии принимать бизнесовые решения. Бизнес аналитик или владелец этих данных тебе должен рассказать что их них чего обозначает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:29 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
guest_XY Мне была поставлена такая задача: загрузка товаров из 5 xml файлов. Выгрузку сделал и для товаров с атрибутами и для категорий. Пока создал отдельные таблицы для каждого источника ( 5 таблиц товаров, 5 таблиц категорий ). Дальше не знаю как поступить, асортимент выгруженных товаров практически идентичный и категории пресекаются, а их id, parent_id в каждой таблице разный. ETL же стандартная ситуация - куча поставщиков, и у каждого свой прайс сидишь и ручками каждый ID сопоставляешь в таблице соответствий. можно загуглить ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:57 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
mayton guest_XY Может вопрос и идиотский, задач с выгрузкой из разных источников и совмещением из разных каталогов дела не имел. Подскажите наиболее правильное решение такой ситуации. Технически это делается так. В базе создается отдельная схема. Обычно STAGING. И туда сливаются сырые данные со всех-всех источников. Там они - чистятся. Обогащаются от справочников. Или наоборот нормализуются. И когда достигнуты какие-то критерии (например count(*) соответствует ожиданиям плюс минус проценты) то эти данные переливаются в основную схему. Спасибо что объяснили общую схему. Понимаю что не зная конкретной ситуации, вы лишь обозначили принцип, но похоже именно это мне и было нужно чтобы дальше гуглить, читать и думать. По поводу того ...не знаю как поступить, асортимент выгруженных товаров практически идентичный и категории пресекаются, а их id, parent_id в каждой таблице разный. Вроде логичным кажется совместить товары в одну таблицу, но надо придумать что делать с категориями. ты как программист не в состоянии принимать бизнесовые решения. Бизнес аналитик или владелец этих данных тебе должен рассказать что их них чего обозначает. По поводу решений,.. Ну нет у нас бизнес аналитика. Это заказ, отчати учебный (закзчик в курсе, что он такой) поэтому плата там более чем умеренная. Особенность магазина это конструктор обуви (уже сделан мной, раньше был к Drupal7 прикручен) теперь и одежды + фасетный поиск (с ним думаю еще придется повозится, вероятно что-то вроде Sphinx буду использовать, ). Реализуется на Yii2 поскольку писать под Drupal - свои решения через его API как по мне пытка, особенно сравнивая с Yii. Вот и решил взять Yii, тем более магазины на нем есть и какие-то типовые решения, можно там посмотреть. Вот так и решили: заказчику шустрый магазин к концу зимы, мне практический опыт. Так что думаю на этот форум еще не раз придется заглядывать, когда буду фильтры настраивать). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 20:39 |
|
Как правильно скомпоновать вместе товары и категории выгружаемые из 5 различных xml файлов
|
|||
---|---|---|---|
#18+
полудух guest_XY Мне была поставлена такая задача: загрузка товаров из 5 xml файлов. Выгрузку сделал и для товаров с атрибутами и для категорий. Пока создал отдельные таблицы для каждого источника ( 5 таблиц товаров, 5 таблиц категорий ). Дальше не знаю как поступить, асортимент выгруженных товаров практически идентичный и категории пресекаются, а их id, parent_id в каждой таблице разный. ETL же стандартная ситуация - куча поставщиков, и у каждого свой прайс сидишь и ручками каждый ID сопоставляешь в таблице соответствий. можно загуглить Понимаю что типовая, интересовало как это сделать наиболее правильно, там выше идей было 4. По ETL вот вижу статью на Хабре. За подсказку спасибо, теперь понятно с чего начинать ETL-системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 20:52 |
|
|
start [/forum/topic.php?fid=32&fpage=4&tid=1539890]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 402ms |
0 / 0 |