Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.06.07
Prihlásený: 26.11.19
Príspevky: 69
Témy: 40
Príspevok NapísalOffline : 26.09.2011 11:42

Riesim Nested set model a neviem si rady s dvoma databazovymi dotazmi.
Prvy sa tyka presuvania uzla aj s jeho vsetkymi poduzlami z lubovolnej casti stromu do druhej.
Druhy sa tyka vybratia vsetkych poduzlov konkretneho uzla do urcitej zvolenej hlbky.
Struktura tabulky v databaze ktora riesi nested set model MUSI obsahovat len 4 polozky potrebne pre tuto pracu a to:
    ID - primarny kluc
    PARENT ID - referencia na primarny kluc tej istej tabulky
    LEFT
    RIGHT

Ziadne dalsie polozky ako napr. LEVEL a pod. obsahovat nemoze. Ak poznate nieco co riesi nested set model aj s tymito dalsimi doplnujucimi polozkami ani neodpisujte.

Na nete som nenasiel nic co by riesilo tento problem komplexne, poriadne a optimalizovane pre danu strukturu tabulky.
Viete mi priamo napisat ako by mali vyzerat tieto dotazy na databazu alebo poznate stranky kde su tieto veci dobre popisane?
Riesenie by malo byt optimalizovane a dotazov na databazu by malo byt co najmenej ako to ide. Samozrejme transakcie ak su uvadzajte.
V druhom dotaze predpokladam ze sa mozu vyskytovat recursive queries alebo sub queries alebo nieco co ani nepoznam a zjednodusi to dopytovanie - ak taketo moznosti su pre tento problem riesenim tak ich uvedte.

Co sa tyka typu databazy tak to nezalezi - staci ze uvidim dotazy alebo daku teoriu ktora vysvetli ako tieto dotazy spravim. Ale robim v MySQL kedy nahodou.

Dakujem


Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 26.09.2011 13:38

Tu(a v súvisiacich článkoch) je myslím popísané to čo chceš:
http://php.vrana.cz/traverzovani-kolem- ... kticky.php
Síce tam používa level, ale ak som to dobre pochopil, tak neni nevyhnutný.
A tu sú ešte nejaké ďalšie:
http://interval.cz/clanky/metody-uklada ... atabazich/
http://emer.grafika4u.sk/clanky/php-mys ... eho-dotazu

PS:Prečo NESMIE tabuľka obsahovať level?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.06.07
Prihlásený: 26.11.19
Príspevky: 69
Témy: 40
Príspevok Napísal autor témyOffline : 26.09.2011 13:47

V clankoch som nenasiel odpoved na dva mnou spominane dotazy.
LEVEL nesmie byt pretoze je to nadbytocna vec. Jednoducho tam nema co hladat. Cez PARENT ID sa da level urcit tiez.

// pridané po 4 minútach od posledného príspevku

Aby som to trochu lepsie upresnil. Ja potrebujem riesenie na urovni databazy a nie skriptovacie jazyka ako napr. PHP a pod. Teda hladam dotazy na databazu kde sa mozno vyuzivaju aj rekurzie a pod.


Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 26.09.2011 13:55

Však ti píšem, že ten level je tam ako doplnok a môžeš ho vyhodiť ak sa ti nepáči.
Samozrejme, že pre svoju potrebu to budeš musieť domyslieť sám....

To je všetko odo mňa...

PS:level je číslo v rozsahu tinyint a jeho prínos je určite väčší...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.06.07
Prihlásený: 26.11.19
Príspevky: 69
Témy: 40
Príspevok Napísal autor témyOffline : 26.09.2011 13:59

A chces povedat ze tabulka obsahujuca aj pole LEVEL je normalizovana?


Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 26.09.2011 14:01

Áno!
Bolo by myslím šialené, keby si kôli tinyint stĺpcu musel použiť join...


Offline

Čestný člen
Čestný člen
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 26.09.2011 19:46

quark píše:
...ani neodpisujte

Rozmýšľam, či to hodím do koša dnes, alebo až zajtra.

Keby si si prečítal prvý z camo-vých článkov, zistil by si, že je tam aj odkaz na presun uzlov. Používa v tabuľkách level, ale určite to zvládneš prerobiť aj bez neho (a prepísať si to čisto do SQL).

A že tabuľka nie je normalizovaná? Ty to máš ako zadanie nejakej úlohy do školy?
Ak áno, tak ďakujem nášmu školstvu, že nám pripravuje nepoužiteľných ľudí.
Že tam "level" nemá čo hľadať? Blbosť. Prečo by som mal komplikovať prácu, keď s tým level-om sú moje skripty efektívnejšie?
Ty sa máš snažiť urobiť efektívnu aplikáciu, nie takú, čo sa slepo drží nejakých odporúčaní. Normalizované tabuľky nie sú vždy ideálne (pre web, resp. pre konkrétne aplikácie).

camo - ten emerov článok je o niečom inom, ten používa iný spôsob ukladania dát.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.06.07
Prihlásený: 26.11.19
Príspevky: 69
Témy: 40
Príspevok Napísal autor témyOffline : 26.09.2011 20:20

Dakujem za rady shaggy. Precital som si clanok poriadne a musim priznat ze bolo tam pisane o mojom probleme. Co sa tyka toho levelu tak tiez musim priznat ze asi bude lepsie to tam zahrnut ako nie. A nie je to ziadna uloha zo skoly alebo z roboty :) len si robim jednu app a chcem ju mat poriadne.
Tak isto dakujem aj tebe camo.

Este raz vdaka.


Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 26.09.2011 22:05

Shaggy:
Je to iný prístup, ale rozdiel je iba v tom, že je stavaný na jeden dotaz. Jeden dotaz by bol rizikom pri veľkom množstve dát. To tam emer aj spomína. Ale dá sa na ňom robiť aj presun uzlov(aspoň dúfam...) . Ja som ho použil na dynamické menu a dúfam, že tie presuny budú fungovať pre administráciu...


Offline

Čestný člen
Čestný člen
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 26.09.2011 22:39

camo - aj pri traverzovaní okolo stromu používaš minimum dotazov (na to je stavaný). Tento spôsob ukladania dát je náročný práve na to ukladanie, ale pri čítaní je rýchly.

quark - myslím, že Jakub Vrána vie o čom píše a ak to tam použil on, nie je dôvod myslieť si, že "level" je zbytočný/nevhodný.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 26.09.2011 22:59

Ja do toho až tak nevidím, ale zaujímalo by ma v čom je vlastne rozdiel medzi tým emerovým prístupom a tým traverzovaním.
Ja som to pochopil tak, že traverzovanie je vždy viac dotazov a hodí sa napr. na fóra, kde je veľký objem dát v DB, čo je riziko prenášať jedným dotazom. A zase na také menu by to boli zbytočné dotazy navyšše.
Mne je zle už keď mám v scripte dva dotazy a mám pocit, že som to prehnal...


Offline

Čestný člen
Čestný člen
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.09.2011 20:41

Aký je rozdiel medzi menu a napr. stromovou štruktúrou fóra? Žiadny, ani netuším, aký by mal byť problém pri "prenášaní jedným dotazom". Ten objem dát je uplne minimálny (to nie sú megabajty).

Ja napr. používam traverzovanie v mojom CMS na uloženie štruktúry stránok/kategórií a menu zostavujem pomocou jedného selectu. Aj keď si pozrieš tie články od Jakuba Vrány, tak napr. omrvinková navigácia ti "zožerie" max. 2 selecty, čo nie je vôbec veľa.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Nested Set Model - riesenie dotazov na databazu

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 27.09.2011 22:48

No dobre díky ja sa tej paranoje z prenášania musím nejako zbaviť...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 02.10.2011 21:00

quark pise ze na databaze nezalezi, tak nech pouzije miesto databazy DATABAZU Oracle a tam ma priamo na urovni sql v selecte clasulu "connect by" ktora to riesi za neho .


Odpovedať na tému [ Príspevkov: 14 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. dtv2000h - pár dotazov

v TV

2

659

19.02.2008 19:37

Mir Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Optimalizovanie SQL dotazov

v Databázy

26

3664

19.11.2008 20:19

sqlocka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ...par. dotazov v HTML

v HTML, XHTML, XML, CSS

15

1320

15.11.2007 15:39

Ded'leg Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. CCleaner - Optimalizovať databázu

v Ostatné programy

3

555

03.09.2011 22:42

Hanoj Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Program na databazu slov

v Ostatné

1

603

16.02.2009 20:07

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQLite - ako navrhnut databazu

v Databázy

22

980

01.05.2014 22:06

Kamahl Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Potrebujem vytvorit MySQL databázu

v Databázy

3

544

22.09.2012 17:12

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. program na geograficku databazu

v Ostatné programy

0

404

03.11.2007 11:21

shanike Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Cyklus v dopyte na databazu

v PHP, ASP

5

370

08.10.2010 17:37

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Minecraft WebShop cez MySQL databázu

v Databázy

5

503

07.04.2015 16:28

PeterBača Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vytvoriť novú databázu: Žiadne oprávnenia???

v Redakčné systémy

2

1021

05.03.2008 22:45

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako zálohovať a obnoviť databázu

v Redakčné systémy

0

1048

07.10.2006 22:32

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Analyza a optimalizacia dopytov na databazu

v Databázy

3

586

20.07.2011 10:10

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako prepojiť databázu s viacerými zdrojmi?

v Databázy

17

1048

14.01.2010 12:27

Googler1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pripojenie z PC na MySql databázu servera

v Databázy

1

739

24.08.2011 9:31

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako cez PHP zalohovat a obnovit databazu?

v PHP, ASP

2

1048

10.04.2006 20:29

Smokie Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra