mam stromovou strukturu, ktera je relativne konstantni (prevazuje select nad update), tak bych si molh vytvorit pomocnou tabulku (id-rodice, id-potomka, uroven), nad kterou muzu vytvorit index. Potom by slo vytvaret dotazy na seznam potomku uzlu, rodicu uzlu, omezit uroven prohledavani a podobne, vse pomerne rychle.
Zmeny struktury by slo realizovat jako triggery a pri trose stesti by aktualizace struktury nebyla neumerne vypocetne slozita ...
Zádrhel bude už při zadání dotazu (např) "Vyber všechny následníky uzlu X". Pokud víte, že strom bude mít omezenou a malou výšku (např. max. tři úrovně), pak se to dá řešit pomocí uložení odkazů na všechny předků do jedné relace.
Předpokládám, že číslo úrovně zamýšlíte pro zlepšení výkonnosti omezením prohledávaného prostoru. Nicméně třeba úplný binární strom má v poslední úrovni polovinu všech uzlů, takže ani takto si moc nepomůžete...
Musel byste mit opravdu zvlastni typ dat, aby se to vyplatilo. Stromy jsou jeden z tech pripadu, kdy pouziti ulozenych procedur vede k dost divokemu zvyseni vykonu (oproti aplikacni urovni). Zazil jsem relativne velkou evidencni aplikaci MsSQL + VB, plneni stromu na aplikacni urovni bylo celkem dost brzo nevyhovujici. Prepsani do ulozene procedury zrychlilo operaci sestaveni stromu cca 10. Vami zminovana varianta materializovanych indexu by byla az na poslednim miste. Dovedu si predstavit pripady na ktere relacni databaze neni to prave orechove, a pokud je to vas pripad, pak proste pouzijte jinou databazi.