[ corelko @ 19.07.2018. 08:21 ] @
Pozdrav ljudi.
Mozda nije pravo mesto za temu ali eto.
Imam neku bazu pasa i vlasnika (bice jasno iz slike modela).
Treba da dohvatim podatke iz vise tabela i to treba da izlistam sve pse (ime, datum rodjenja, vrsta pol..) nekog vlasnika kao i njihove brojeve pasosa i mikrocipa.
Ovaj prvi deo kada treba da dohvatim sve pse nekog vlasnika je lagano ali kada treba da ukljucim i jos ove tabele MIKROCIP I PASOS i dohvatim pomenuta polja iz ovih tabela tu totalno zablokiram.
Da li je ovo moguce izvesti uopste iz ovako napravljenog modela baze?

Evo slika modela:
https://ibb.co/fRKSUJ

Hvala unapred.
[ ser_nicky @ 19.07.2018. 08:57 ] @
Naravno da je moguce:)

Citat:
Ovaj prvi deo kada treba da dohvatim sve pse nekog vlasnika je lagano...


Ako ti je ovo lagano, onda ne vidim sta je problem sa ostatkom zahteva, posto po istom principu vadis podatke iz tabela Mikrocip i Pasos (hint: pogledaj FK u navedenim tabelama)
[ corelko @ 19.07.2018. 12:50 ] @

Uspeo sam.
Code:

select VLASNIK.ID_VLASNIK, VLASNIK.PREZIME, PAS.IME, MIKROCIP.MIKROCIP from VLASNIK
LEFT join JE_VLASNIK ON JE_VLASNIK.ID_VLASNIK=VLASNIK.ID_VLASNIK
LEFT join PAS on PAS.ID_PAS=JE_VLASNIK.ID_PAS
LEFT join MIKROCIP on MIKROCIP.ID_PAS=PAS.ID_PAS
WHERE VLASNIK.ID_VLASNIK='16';


itd, konkretno za jednog tipicnog vlasnika sa id_vlasnik=16


Da li mozda koristis Entity Framework i linq upite?
Bilo bi zanimljivo ovo uraditi kroz linq upit pomocu lambda izraza.
[ Deunan @ 19.07.2018. 13:39 ] @
Treba li posebne tabele za mikrocip i pasos? Moze li pas da ima 2 cipa ili 2 pasosa?
Takodje, treba li ti pivot table "vlasnistvo"? Moze li pas da ima 2 vlasnika?
Ako ces da koristis vise cipova, pasosa, vlasnika... za jednog psa, left join ce ti sve to mnoziti i zavrsices sa gomilom dupliranih redova za istog psa...
Ako imas po jedan od svega, mozda ti je lakse da sve uradis sa 2 tabele (vlasnici, psi).

[ corelko @ 20.07.2018. 06:26 ] @
Ne moze pas da ima 2 mikrocipa i dva pasosa. Kontao sam da se osiguram da ako iz nekog razloga pas ili njegov vlasnik nesto od ovog zagubi da mogu da pamtim prethodne npr pasose ili mikrocipove.
Mozda sam malo pretjerao sa tim.
Pas naravno ne moze da ima vise vlasnika.

Koliko sam shvatio predlazes da se ovo uradi sa 2 tabele PAS I VLASNISTVO, a da evidenciju o pasosu, mikrocipu itd vodim u tabeli PAS i sve to izmedju ove tabele resim relacijom 1:m.
[ Predrag Supurovic @ 20.07.2018. 06:41 ] @
Citat:
corelko: Ne moze pas da ima 2 mikrocipa i dva pasosa.


A što ne bi moglo? Mikročip može da crkne pa da se zameni. Pas može da promeni vlasnika i to više puta pa da ima bivše vlasnike. Više je pitanje da li treba to da imaš u svojoj evidenciji.

[ djoka_l @ 20.07.2018. 06:57 ] @
A pasoš može da ima rok važenja, posle kojeg se vadi novi (možda).
[ Deunan @ 20.07.2018. 09:45 ] @
U redu je ako zelis da pratis prethodne cipove, vlasnike... ali u tom slucaju taj query ce da ti daje gomilu redova istog psa.

vlasnik1 pas1 cip1 pasos1
vlasnik1 pas1 cip1 pasos2
vlasnik1 pas1 cip2 pasos1
vlasnik1 pas1 cip2 pasos2

moras onda da koristis "GROUP BY pas.id_pas", ali onda dobijas red sa starim cipom, pasosem.
Moras da slozis sa ORDER BY (mozda bi funcionisalo sa "ORDER BY vlasnistvo.datum DESC, mikrocip.datum DESC, pasos.datum DESC").
testiraj malo...