Portál AbcLinuxu, 4. listopadu 2025 22:03
kategorie mám cat_id cat_name cat_parent 1 Sestavy 0 2 Servery 0 3 Nove 1 4 Nove 2 5 Použité 1 6 Použité 2 7 AMD 3 8 Intel 3 a položky mám item_id item_name cat_id 1 Položka A 4 2 Položka B 5 3 Položka C 5 4 Položka D 4 5 Položka E 6 6 Položka F 6 7 Položka G 7 8 Položka H 8
tree_left a tree_right. Udělej nad nima index, aby to bylo rychlé a přečti si o nested sets.
Pak ti stačí pro výběr podstromu prostý výběr všeho s tree_left mezi tree_left a tree_right kořene podstromu.
Udělej nad nima index, aby to bylo rychléUdělej nad nima index ? Můžeš ještě trochu přiblížit ?
Pak ti stačí pro výběr podstromu prostý výběr všeho sTato věta mi nedává moc k pochopení, jelikož nejsem znalý dané problematiky. Můžeš prosím v podobě pro začátečníka? Děkujitree_leftmezitree_leftatree_rightkořene podstromu.
Udělej nad nima index ? Můžeš ještě trochu přiblížit ?
CREATE INDEX brm ON tabulka (sloupeček);
Tato věta mi nedává moc k pochopení, jelikož nejsem znalý dané problematiky. Můžeš prosím v podobě pro začátečníka?Viděl jsi ten obrázek na Wikipedii? Myslím, že je z něj jasné, jak se takové věci vyptává na podmnožiny.
Viděl jsi ten obrázek na Wikipedii?Ano, víděl, a dokážeš si představit přidat tam další kategorii? Počítání na dva dny
I při tisících kategorií a na CPU z telefonu je to otázka sekundy.
Pokud chceš rychle a dynamicky vytahovat kategorie, tak je to to správné.
Nemyslel jsem rychlost načítání/zpracování ale poukazoval jsem na to, že pokud mít v mysql nějaký strom a budu tam chtít přidat nějaké kategorie tak to znamená všechno přepočítat, což musím patrně udělat ručně. Tak že pokud tam budu mít cca 500 kategorií tak to udělám tak za dva dny, pokud se teda spíš neobjesím
Nebo jsem to nepochopil? Dělá se to jinak?
Já jo, ty ne - znovu: I při tisících kategorií a na CPU z telefonu je to otázka sekundy.
Kdyby jsi si aspoň přečetl odkazovaný článek do konce, nemohl by jsi napsat, co jsi napsal. Nebo zkusil zapřemýšlet co máš hledat dle nápovědy v druhém odkazu.
Node Left Right Depth Clothing 1 22 0 Men's 2 9 1 Women's 10 21 1 Suits 3 8 2 Slacks 4 5 3 Jackets 6 7 3 Dresses 11 16 2 Skirts 17 18 2 Blouses 19 20 2 Evening Gowns 12 13 3 Sun Dresses 14 15 3a při použití tohoto dotazu se mi nevypíše nic. Ani se nedivím, když tam žádné sloupce s názvy Child Tree Parent ani Given nemám
SELECT Child.Node, Child.LEFT, Child.RIGHT FROM Tree AS Child, Tree AS Parent WHERE Child.Depth = Parent.Depth + 1 AND Child.LEFT > Parent.LEFT AND Child.RIGHT < Parent.RIGHT AND Parent.LEFT = 1 -- Given Parent Node Left Index
¡Odkazoval jsem český text! Takže na to fakt kašleš…
Dotaz je pro tabulku strom (Tree) a ty tam máš čičiny (cat), pokud to z toho nevyčteš, chce se to podívat na nějakou základní syntaxi SQL.
A co ty ostatní názvy Child Parent Given ? Ty mám vzít kde? Posílal jsi český odkaz to vím, ale na něco jiného, řeším ale tohle : https://en.wikipedia.org/wiki/Nested_set_model
Snaha není koksovatelná.
Když máš pocit, že jsem ti poslal něco jiného, tak to je pak těžké...
Na závěr, myslím, že nemáš dostatek znalostí a přijde mi, že se po nic ani nepídíš, takže bych ti doporučil se zabývát mým druhým hintem a jí touto cestou.
> update `counter_ip` set id=id-100000 ... Příkaz proběhl v pořádku, bylo změněno 8 190 záznamů. (0.126 s)Pentium III
$stmt = $pdo->prepare('SELECT Child.Node, Child.LEFT, Child.RIGHT
FROM cat AS Child, cat AS Parent
WHERE
Child.Depth = Parent.Depth + 1
AND Child.LEFT > Parent.LEFT
AND Child.RIGHT < Parent.RIGHT
AND Parent.LEFT = 1 -- Given Parent Node Left Index');
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
echo $row['Node'];
}
SELECT Child.Node, Child.LEFT, Child.RIGHT, Child.depth
FROM cat AS Child, cat AS Parent
WHERE
Child.Depth = Parent.Depth + 1
AND Child.LEFT > Parent.LEFT
AND Child.RIGHT < Parent.RIGHT
order by Child.LEFT;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.