SQLRU.net
Разработка приложений баз данных

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


Текущее время: Sun Dec 22 12:12:06 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00845 секунд