| Начало » Диску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. Нужно вручную грузить ветки.
 |  
	|  |  |  
	|  |  
	|  |  
	|  | 
 
 
 Текущее время: Fri Oct 31 06:07:19 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.00953 секунд |