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

Hijerarhijski report problem u MySQL

[es] :: MySQL :: Hijerarhijski report problem u MySQL

[ Pregleda: 1091 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igor.vitorac

Član broj: 144858
Poruke: 483



+13 Profil

icon Hijerarhijski report problem u MySQL19.05.2012. u 22:39 - pre 145 meseci

Zanima me koja je najbolja varijanta u MySQL-u da dobijem sve record-e koji su child-ovi nekog parenta, pri cemu moze da bude parent-child vise nivoa. Primer:

-Tabela A
-Tabela B
-Tabela A referencira B record, i.e. A.B_id
-Relacija izmedju A i B je many-to-one.
-U tabeli B ima parent_id koji referencira parent B record. Parent child referenciranje moze da bude nula do nekoliko nivoa.

E sad, treba da pravim odredjene report-ove koji na bazi selectovanog B record-a daju redove iz tabele A, ali isto tako da ukljuci i one redove iz tabele A koji referenciraju neki od child-ova B recorda koji mogu biti bilo kog nivoa, ako takvi postoje.

Ono sto sam do sad nasao je da to svakako moram koristiti stored proceduru, jer broj nivoa B parent-child nije definisan. Sta je u tom slucaju bolje raditi?
1. Kreirati kompletan upit u stored proceduri
2. Kreirati samo view ili neki temp table iz stored procedure koji ce dati sve B recorde koji su bazirani na selektovanom B parent record-u, pa posle raditi dodati dodatni join sa A tabelom.
3. Nesto trece?

Hvala unapred,
Igor
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Hijerarhijski report problem u MySQL20.05.2012. u 16:38 - pre 145 meseci
napises create table ovo ono za te tabele koje te zanimaju, onda napises insert into ovo ono za te tabele koje te zanimaju i onda kazes kako oces da dobijes izlaz.... posto je ovo sto si napisao previse siroko
 
Odgovor na temu

igor.vitorac

Član broj: 144858
Poruke: 483



+13 Profil

icon Re: Hijerarhijski report problem u MySQL21.05.2012. u 09:11 - pre 145 meseci
Citat:
bogdan.kecman: napises create table ovo ono za te tabele koje te zanimaju, onda napises insert into ovo ono za te tabele koje te zanimaju i onda kazes kako oces da dobijes izlaz.... posto je ovo sto si napisao previse siroko


Kad bolje pogledam sta sam napisao, tesko i da bi ja razumeo. :-)

Evo jedan od konkretnih slucajeva:
- Tabela Contacts
- Tabela Companies
- U tabeli Contacts postoji Contacts.company_id koji referencira Company record iz tabele Companies.
- Svaki kontakt moze imati pripadnost samo jednoj kompaniji.
- u tabeli Companies postoji Companies.parent_id koji referencira drugi Company record i.e. parent kompaniju kojoj pripada. Znaci postoji hijerarhija medju Company record-ima. E.g. hijerarhija
A_comp - B_comp - C_comp - D_comp
gde je A companija na samom vrhu hijerarhije.
-Contact record moze da pripada kompaniji bilo kog "nivoa"

Na osnovu izabranog Company record-a, moram da izlistam sve kontakte koji pripadaju izabranom Company record-u, kao i Company record-ima koji su sub-kompanije od selektovane.


Problem nastaje sto imam gomilu report-ova koji bi morali da listaju sve kontakte od selektovane kompanije kao i od njenih child kompanija, pri cemu nije isti query kao i JOIN-i za sve report-ove, pa me zanima sledece:
1. da li je bolje praviti zasebne stored procedure za svaki od report-ova koje bi ukljucivale sve neophodne JOIN-e?
2. da li je bolje napraviti view koji bi sadrzao listu svih child kompanija selektovane kompanije (ukljucujuci i nju samu), pa zatim praviti dodatne join-e sa ostalim neophodnim tabelama?
3. Nesto trece?

Hvala,
Igor
 
Odgovor na temu

[es] :: MySQL :: Hijerarhijski report problem u MySQL

[ Pregleda: 1091 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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