Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

simulacija rekurzije (ili nešto slično)

[es] :: Baze podataka :: simulacija rekurzije (ili nešto slično)

[ Pregleda: 1228 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

antix
Java/JEE developer

Član broj: 8388
Poruke: 237
*.mobtel.co.yu

Jabber: antix@elitesecurity.org


Profil

icon simulacija rekurzije (ili nešto slično)08.06.2004. u 15:24

imam polja u tabeli groups:

group_name
group_id
parent_id
group_path


group_name je ime grupe

group_id je jedinstveni id grupe

parent_id je id roditeljske grupe

group_path su id-ovi svih roditeljskih grupa, tj ako je grupa dublje u hijerahiji onda
nanižemo sve parent_id-ove rastavljene zarezom


ako je grupa na vrhu hijerarhije tada joj je parent_id jednak 0 i group_path je prazan string
(tj varchar). Više grupa može da bude na vrhu hijerarhije (tj. bez roditeljske grupe) i svaka
grupa može da ima proizvoljan broj podređenih podgrupa.


primjer:
Code:

group_name                group_id             parent_id               group_path
-------------------------------------------------------------------------------

Matematika                   1                           0                           ""

Biologija                        2                           0                           ""

Analiza                      3                           1                           1,

Algebra                         4                           1                           1,

Komplexna analiza           5                           3                           1,3,

Linearna algebra             6                           4                           1,4,

Vektorski prostori            7                           6                          1,4,6,


------------------------------------------------------------------------------


treba mi upit (ako je moguć) koji će da mi vrati sve nazive grupa u ''pravilnom'' rasporedu tj.
da naniže ime grupe pa imena svih njenih podgrupa (i tako rekurzivno).
Znači za ovaj gore navedeni primjer trebalo bi da vrati nešto ovako:

Biologija
Matematika
Analiza
Komplexna analiza
Algebra
Linearna algebra
Vektorski prostori

znači bitno je samo da podgrupe idu odmah iza svojih
roditeljskih grupa i tako rekurzivno do kraja.

Radim sa MSSQL ali može i u nekom drugom dijalektu SQL-a

Hvala svima unaprijed za sve ideje....
08.06.2004. u 15:24 

Zidar
Canada

Član broj: 15387
Poruke: 1697
*.eqao.com



Profil

icon Re: simulacija rekurzije (ili nešto slično)08.06.2004. u 19:36
Probaj ovo
http://www.yafla.com/papers/sqlhierarchies/sqlhierarchies.htm

:-)
08.06.2004. u 19:36 

antix
Java/JEE developer

Član broj: 8388
Poruke: 237
*.mobtel.co.yu

Jabber: antix@elitesecurity.org


Profil

icon Re: simulacija rekurzije (ili nešto slično)08.06.2004. u 22:31
Hvala na linku!!!

Znao sam za rješenje preko funkcija ali je link svejedno dobar. Više
me zanimalo da li postoji neki SQL upit koji će da odradi isti posao!?
08.06.2004. u 22:31 

GoranVucicevic
Novi Sad

Član broj: 28045
Poruke: 66
*.dialup.neobee.net.

Sajt: www.clickersoftware.com


Profil

icon Re: simulacija rekurzije (ili nešto slično)09.06.2004. u 21:59
Mogao bi da iskoristis path polje (posto ga vec imas) tako sto bi selektovao to sto ti treba + polje koje bi predstavljalo broj ponavljanja path separatora u path-u (u tvom konkretnom primeru za path: '1,4,6,' -> broj ponavljanja = 3) i po tom izvedenom polju treba da sortiras ascending, a zatim po group_id, mada moram da priznam da te nisam bas najbolje razumeo kako hoces sa ti se urede podaci.
Upit za polje bi mogao da ti bude :
LEN(group_path) - LEN(REPLACE(group_path, ',', ''))
Vidi: GoranVuc #4934
09.06.2004. u 21:59 

[es] :: Baze podataka :: simulacija rekurzije (ili nešto slično)

[ Pregleda: 1228 | Odgovora: 3 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.