Forum » Programiranje » SQL, naredil bi en čuden order
SQL, naredil bi en čuden order
BRBR ::
imam nested set model po temle kopitu:
nested
In ko iz tega ven potegem ven celoten tree, nekako v temle smislu (pri čemer je order_by field moja inovacija):
ven dobim nekaj takega:
Torej je zdaj logično zakaj je node.order_by tamle(ker denimo skoraj nihče ne bi izbral fičota in kartce hočem imet bmw na vrhu). Torej rabim imet posortirano
poleg default, po node.lft še po node.order_by znotraj grupe indicirane z depth fieldom.
A bi se kaj takega dalo naredit ?
nested
In ko iz tega ven potegem ven celoten tree, nekako v temle smislu (pri čemer je order_by field moja inovacija):
SELECT (concat(REPEAT(' ', COUNT(parent.child_id) - 1), node.child_id)) AS name, node.lft, COUNT(parent.child_id) - 1 as depth,node.child_id, node.order_by FROM nested AS node, nested AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.child_id,node.lft ORDER BY node.lft;
ven dobim nekaj takega:
name node.lft depth node.order_by avto 1 1 1 fičo 3 2 3 bmw 7 2 1 katrca 8 2 2 etc
Torej je zdaj logično zakaj je node.order_by tamle(ker denimo skoraj nihče ne bi izbral fičota in kartce hočem imet bmw na vrhu). Torej rabim imet posortirano
poleg default, po node.lft še po node.order_by znotraj grupe indicirane z depth fieldom.
A bi se kaj takega dalo naredit ?
Never underestimate the power of idiots in large groups.
- spremenil: BRBR ()
WarpedGone ::
Najprej vprašanje: tole se igraš in učiš ali rešuješ/načrtuješ kak konkreten problem?
Če prvo, potem: Več šans.
Lahko zgornji SQL vržeš v FROM in na koncu dodaš ORDER BY depth, node.order_by.
Če drugo, potem: Don't do this.
Hierarhija znotraj iste tabele je v SQL svetu v praksi totalni PITA. Za različne zadeve uporabi različne tabele in jih ustrezno polinkaj med sabo s FKji. Model naj odraža vsebino, tvoje lastno življenje in življenje drugih bo precej lažje.
Če prvo, potem: Več šans.
Lahko zgornji SQL vržeš v FROM in na koncu dodaš ORDER BY depth, node.order_by.
Če drugo, potem: Don't do this.
Hierarhija znotraj iste tabele je v SQL svetu v praksi totalni PITA. Za različne zadeve uporabi različne tabele in jih ustrezno polinkaj med sabo s FKji. Model naj odraža vsebino, tvoje lastno življenje in življenje drugih bo precej lažje.
Zbogom in hvala za vse ribe
BRBR ::
Torej da bo jasno. Nested model izvira iz adjacent (unlimited depth !).
Primer adjacenta:
Bolj simpel ne bi moglo bit.Tule gre za eno in isto zadevo.
Ne. Potem se mi pokvari order by node.lft, ki mora bit tak kot je.
za primer poglej tole:
http://www.agrozoo.net/jsp/Galery_uploa...
Klik naprimer na kategorija. Vse dela tako kot treba ampak ker brezveze gonim eno bazno proceduro (+ other benefits) bi naredil kot opisano zgoraj.
Primer adjacenta:
parent_id child_id avto bmw avto fičo bmw 316d etc
Bolj simpel ne bi moglo bit.Tule gre za eno in isto zadevo.
Lahko zgornji SQL vržeš v FROM in na koncu dodaš ORDER BY depth, node.order_by.
Ne. Potem se mi pokvari order by node.lft, ki mora bit tak kot je.
za primer poglej tole:
http://www.agrozoo.net/jsp/Galery_uploa...
Klik naprimer na kategorija. Vse dela tako kot treba ampak ker brezveze gonim eno bazno proceduro (+ other benefits) bi naredil kot opisano zgoraj.
Zgodovina sprememb…
- spremenil: BRBR ()
WarpedGone ::
Če mora bit tak kot je, kaj bi pol sploh rad?
Fičo ma 3, bmw pa 7. In 3 je pred 7.
Edit: običajno je tako, da ko enkrat znaš dost natančno povedat kaj bi rad, znaš to tut spisat v obliki SQL.
Fičo ma 3, bmw pa 7. In 3 je pred 7.
Edit: običajno je tako, da ko enkrat znaš dost natančno povedat kaj bi rad, znaš to tut spisat v obliki SQL.
Zbogom in hvala za vse ribe
Zgodovina sprememb…
- spremenilo: WarpedGone ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1935 (1535) | ktka |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2215 (1551) | NejcSSD |
» | [jquery] .appendOddelek: Programiranje | 930 (757) | korenje3 |
» | c# QuadTree IndexingOddelek: Programiranje | 850 (672) | RobertDev |
» | MYSQL vprašanjeOddelek: Programiranje | 1791 (1406) | MrBrdo |