Начало » Дискуcсии » Проектирование БД » Группировка товаров в MS SQL (Как оптимальнее сделать группировку справочника товаров)
Группировка товаров в MS SQL [сообщение #2311] |
Sun, 21 May 2023 20:44 |
GrigoryFomin
Сообщений: 91 Зарегистрирован: April 2023
|
Member |
|
|
MS SQL. Есть справочник товаров - 2 млн позиций. Каждый товар имеет группировку: тип, подтип, подподтип (например, Одежда мужская->коллекция 2023->Рубашки). Сейчас это хранится все в трех полях справочника товаров. С товарами надо быстро работать по группировке - нужно выбрать быстро все товары по заданной группировке - например, оператор выбирает "тип" - нужно в грид загрузить все товары одного типа (допустим 100 тыс. записей), потом из них может выбрать подтип - в грид должны попасть уже 5 тыс. товаров. В завершении он может выбрать подподтип - в гриде должно остаться допустим 100 товаров. Именно в такой последовательности, так как он может выбрать только тип и работать в гриде встроенными фильтрационными средствами (там есть колонки, цена, скидка, размер, цвет и куча других). Затем по этим типам/подтипам надо формировать итоговые отчеты - сколько продано товаров такого-то "типа", из них - столько-то такого-то "подтипа" и т.п.
По классике - нужно группировку хранить в виде дерева со связями ID-ParentID, но это вызывает тормоза при выборке - нужно рекурсивно получать каждый раз всех потомков, а потом еще и выборку самих товаров на его основе делать - долго каждый раз. Есть более изящное решение? HierarhyID вроде современннее, но его не поддерживают компоненты Delphi. Нужно вручную грузить ветки.
|
|
|
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 15:21:23 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00708 секунд
|