>> Получается три таблички:
>> 
>> объекты
>> иерархии (деревья)
>> связи
>> 

SST> вот именно этот момент и не устраивает - три таблички.

SST> поле КодГруппы в таблице Товары ссылается на ПК таблицы Группы поле 
КодГруппы.
SST> а те варианты, которые Вы предлагаете, получается, например, название 
фильтр масла
SST> будет дублироваться дважды с разными значениями КодГруппы.
SST> получается, что почти каждый товар будет иметь две и более связи с 
таблицей групп товаров.
SST> т.е. записей о товарах ~ 30 млн. умножить на 2 (или на 3 (или на
SST> 4)) и получим ~ 100 млн записей.
SST> и это число с каждым кварталом будет расти как миниумум на 50 тис. записей.

SST> тогда лучше завести в таблице групп товаров ещё одно поле (или
SST> два поля) к существующему ParentId
SST> такие Parent2_Id, Parent3_Id. пока ничего изященее не получается.

     Ты хоть понял что написал ? Тебе-же не это предлагали ...
     Не надо дублировать записи таблицы товар, да и вообще выкинуть
     нафиг ParentId из таблички товар ...
     "Дубликаты" будут в табличке связок ...

Разжовываю ...

     Таблица "Товар"

     ID      Name
     1       масло
     2       ремень
     3       клапан
     4       фильтр масла


     Таблица "Труппы"  ( здесь обычное дерево чтоб не заморачиватся,
     но можно е эту таблицу через линки ...)

     ID      Parent_ID   Name
     1       0           Машина
     2       1           Моторная группа
     3       2           Газораспределительный механизъм
     4       1           Расходные материалы
     

     Таблица "линков"

     TOVAR_ID        GROUP_ID
     1               4                      (масло входит в расходные)
     4               4                      (фильтр масла в расходные)
     4               1                      (фильтр масла в моторную группу)
     2               4
     2               2
     2               3

     Короче устал, дальше - твоя фантазия ...

С уважением,
Константин Григорьевич.
===============


Ответить