| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Nemáte niekto nejaké pekné riešenie v SQL, pomocou ktorého by som získal z tabuľky s hodnotami id a parent id všetky child prvky?
Typickým príkladom by mohli byť niektoré fóra, keď reagujete na nejaký príspevok a ten sa zaradí ako child prvok reagovaného príspevku.
Momentálne to riešim cez funkciu, ktorá vykoná SELECT id FROM tabulka WHERE parent_id = cislo. A každý výsledok zase volá tú funkciu a robí sa zbytočne veľa dopytov na db.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Musel by si mat v DB dalsi stlpec, ktory by ti popisoval poziciu kazdeho prispevku v strome.
001
001-001
001-002
001-002-001
001-003
...
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
mozno nejakou procedurou, ale tiez zatial pouzivam rekurzivnu funkciu...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
odbornejšie si to zapisať fakt nemohol trošku ľudskou slovenskou rečou
ďakujem
|
|
Registrovaný: 21.10.07 Prihlásený: 02.09.09 Príspevky: 7 Témy: 0 | Napísal final: 26.10.2008 0:44 | |
|
v mysql nenájdeš stavanú podporu pre prácu s hierarchickými štruktúrami, na rozdiel od oracle či sql serveru.. takže sa s tým treba trošku pohrať..
ak máš danú hĺbku, môžeš použiť adekvátny počet joinov..
ak nie, čo teda v tomto prípade určite nie, tak odporúčam mptt (modified preorder tree traversal) algoritmus aka nested set model..
jedná sa o trošku komplikovanejší spôsob, ale za to výsledkom sú značné výhody pri selectoch.. naopak pri obsluhe (insert/move/delete tree) je to o niečo náročnejšie..
sú aj obdobné spôsoby, ktoré však nie sú moc uznávané, ale za to jednoduchšie (obsahujúce nepekné procedúry)
čo sa týka NS, tak kvalitný tutoriál nájdeš na http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
ak používaš nejaké mvc frameworky, tak by to malo byť v niektorých implementované.. dávnejšie sa to tuším chystalo, neviem už ani v ktorých.. tým by si sa to nemusel učiť a vytvárať si vlastný automatizovaný systém.. čo však nie je na škodu pre lepšie porozumenie..
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
nj, asi zostanem pri starej funkcii... Ďakujem všetkým.
Keby som vymyslel niečo elegantnejšie, dám hneď vedieť.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 26.10.2008 20:14 | |
|
Radšej si rýchlo osvoj spomínaný MTTP (čo robí tvoja funkcia pri stovkách záznamov, resp. ako vieš zaručiť, že toľko záznamov nikdy v DB mať nebudeš?), určite nájdeš veľa hotových tried, kde sa už o tie algoritmy starať nebudeš musieť. Aby som doplnil final-ov príspevok, MTTP používa framework CakePHP pri stromových záznamoch. Ak by si hľadal miestne zdroje, niečo o tom písal Jakub Vrána na svojom blogu ( prvý, druhý a tretí).
Odkaz na kód triedy TreeBehaviour z CakePHP: http://api.cakephp.org/tree_8php-source.html
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Vypis cesty v stromovej strukture v PHP, ASP | 4 | 431 | 26.08.2010 23:47 vladivlad | | c struktury v Assembler, C, C++, Pascal, Java | 5 | 235 | 04.01.2013 16:54 marian_r | | struktury a subory v Assembler, C, C++, Pascal, Java | 7 | 509 | 24.12.2009 14:32 reDo | | Oddelenie logiky od struktury v PHP, ASP | 12 | 571 | 14.11.2009 0:01 Snacker | | C- Vyčistenie jednej struktury v spajanom zozname v Assembler, C, C++, Pascal, Java | 7 | 356 | 08.12.2013 22:16 BX | | Nacitanie obrazkov v JavaScript, VBScript, Ajax | 4 | 760 | 25.01.2011 14:31 newboy1 | | Nacitanie obrazkov v HTML, XHTML, XML, CSS | 10 | 1249 | 03.01.2010 13:20 xyz | | nacitanie windowsu v Operačné systémy Microsoft | 7 | 542 | 20.11.2011 10:31 andrej2321 | | Načítanie webu v Ostatné | 6 | 467 | 21.06.2013 14:35 ofun | | Nacitanie BIOSu v AMD čipové sady | 11 | 838 | 05.12.2015 12:09 filip987 | | Načítanie obsahu v HTML, XHTML, XML, CSS | 11 | 756 | 12.12.2010 15:40 evryl | | načítanie textu v Assembler, C, C++, Pascal, Java | 0 | 633 | 26.11.2009 19:55 pitbull | | Nacitanie suboru v Assembler, C, C++, Pascal, Java | 5 | 573 | 23.08.2014 21:35 nasm | | nacitanie profilu v Notebooky a netbooky | 1 | 1064 | 20.01.2011 19:29 majky358 | | C++ nacitanie v Assembler, C, C++, Pascal, Java | 6 | 914 | 10.01.2010 10:24 ado21 | | načítanie windowsu v Operačné systémy Microsoft | 1 | 402 | 04.09.2013 12:12 mirom |
| 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
|
|