» »

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):

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.
Zbogom in hvala za vse ribe

BRBR ::

Torej da bo jasno. Nested model izvira iz adjacent (unlimited depth !).
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.
Zbogom in hvala za vse ribe

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Predstavitev dvojiškega drevesa z seznamom

Oddelek: Programiranje
141891 (1491) ktka
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242177 (1513) NejcSSD
»

[jquery] .append

Oddelek: Programiranje
21906 (733) korenje3
»

c# QuadTree Indexing

Oddelek: Programiranje
7828 (650) RobertDev
»

MYSQL vprašanje

Oddelek: Programiranje
131757 (1372) MrBrdo

Več podobnih tem