Приветствую всех, необходима помощь грамотного разработчика. Собственно к проблеме:
Есть таблица продуктов в ней есть колонка артикула и еще различные колонки не суть.
Есть таблица cross в которой указаны аналоги для продуктов (Записей 85000+ парсилась из csv).Выглядит она следующим образом:
В нем важны 2 колонки Артикул и Артикул Кросса.
Одному и тому же Артикулу могут принадлежать 2 разных Кросс Артикула :
Кросс артикулы это по сути то же артикулы товаров из таблицы продуктов.
И здесь возникает проблема Кросс артикулам данного артикула могут присваиваться так же кросс артикулы (то есть где то ниже в файле они уже будут в колонке артикул а им присвоены свои кросс артикулы) при этом исходному артикулу необходимо вывести и их кросс артикулы (текстом это пояснить сложновато)
Изображу схематично:
Тесть получается некое древо при этом вложенность может быть намного больше вплоть до 100 элементов, а то и больше изучать данный файл страшно, а вершиной древа может стать любой артикул. И если учитывать что при данной структуре базы Артикул 1 видит только 2 кросса пренадлежащим ему, то ему также пренадлежат те артикулы которые принадлежат его кроссам, но как их получить я без понятия учитывая что их может быть много и глубина вложенности заведомо не известна рекурсия может быть огромной а запросов к базе неимоверное количество.
Итак вопрос как бы мне при данной структуре бд получить все артикулы принадлежащие первоначальному с минимальным количеством запросов к бд. ФАйл csv выглядит аналогично, вариант переписки парсера так же не радует, скорее пугает ибо 85000+ записей и шерстить по такому массиву сравнивая артикулы смерти подобно и количество записей для связей многие ко многим в базе увеличится с 85000 до милиона а то и пуще.
ps. Это тяжело читать и понять но я думаю может у кого либо выйдет.
Проблемы вложенности
- PartyPoison
- Сообщения: 69
- Зарегистрирован: 2017.04.27, 11:04
-
- Сообщения: 680
- Зарегистрирован: 2017.06.21, 13:50
Re: Проблемы вложенности
Чтобы такого не было, сделай запрос в методе.а запросов к базе неимоверное количество.
Присвой свойстве данный метод.
Работай с свойством.