Autor | Zpráva | ||
---|---|---|---|
petrheller Profil |
#1 · Zasláno: 5. 1. 2014, 18:12:14
Ahoj, potřeboval bych vyřešit spíše algoritmicky problem. Mam dve tabulky, jedna pro produkty, jedna pro kategorie. Kategorie se mohou pod sebe zanořovat (vytvaří se klasický strom, tabulce dva sloupec, id, parent_id). Kazdy produkt muze byt zarazen ve vice kategoriich. Ja chci na zacatku skriptu spustit algoritmus, ktery me vrati pole kde klicem bude id kategorie a hodnotou pocet produktu v celem jejim podstromu. Priklad jsem zapsal maticema:
kategorie (kat. 3 je zarazena pod 2): 1 2 3 1 0 0 0 2 0 0 0 3 0 1 0 články (článek 1 je v kategorii 3, článek 2 a 3 je v kategorii 2, clanek 3 v kategorii 1) 1 2 3 1 0 0 1 2 0 1 0 3 0 1 0 4 1 0 0 výsledná matice (prvni sloupec cislo kategorie, druhy sloupec počet článků v celem jejim podstromu): 1 1 (clanek č. 1) 2 3 (clanek č. 2,3,1) 3 1 (clanek č. 4) samozrejme jeste lepsi by bylo, kdyby vznikla vylsedna matice takovato: (radky jsou kategorie a sloupce jsou zda se clanek nahcazi nekde v podstromu kateogire), soucet uz by se provedl jednoduse po radcich sectenim jednicek... 1 2 3 4 1 1 0 0 0 2 0 1 1 1 3 0 0 0 1 Muze nekdo poradit efektivni algoritmus? Za rychle a dobre vyreseni mate lahev dle vyberu ;) (prosim neradte at to delam rekurzi, to jsem zkousel a pri stovkach kategorii a tisisch produktech je vypocet dost pomaly... ) |
||
Alphard Profil |
petrheller:
„prosim neradte at to delam rekurzi, to jsem zkousel a pri stovkach kategorii a tisisch produktech je vypocet dost pomaly“ id-parent_id ačkoliv z pohledu normované databáze asi ideální, je pro praktickou práci velmi hloupý. Změňte strukturu. www.slideshare.net/billkarwin/sql-antipatterns-strike-back |
||
Časová prodleva: 10 let
|
0