Citat:
Serbiankum:
Vezano za te preglede, zar nije "logicno" da pregled cini pacijent i doktor? Znaci po logici, pregled je zavistan od pacijenta i doktora, jer to cini pregled. Da li bi po tome SifraPacijenta i SifraDoktora bili primarni kljucevi u tabeli pregledi?
Osim pacijenta i lekara, jedan pregled cini i, najprostije receno, vreme kada je pacijent bio kod lekara.
Da resimo sve dileme:
1) Ako zelis da evidentiras Preglede tj. dinamiku/istoriju (recimo, Pera je 22. januara posetio Doktora Ziku)
onda kombinacija pacijent+lekar ne treba da bude jedinstvena (jer ce Pera doci ponovo na pregled kod Doktora Zike 29.januara, na kontrolu)
U tom slucaju (kao i u velikoj vecini drugih situacija) najbolje koristiti vestacki primarni kljuc, recimo PregledID.
Tu nema nikakve dileme.
2) Ako tabela pregledi treba samo da pokaze ODNOS ko je ciji lekar (dakle, da prikazemo stanje stvari, odnose, strukturu, a ne dinamiku), onda stvar posmatras ovako:
Posto jedan doktor ima vise pacijenata, a svaki pacijent bira jednog doktora (odnos je 1:N) onda ti ne treba treca tabela, nego samo strani kljuc SifraDoktora u tabeli Pacijenti.
PACIJENTI
----------
SifraPacijenta (PK)
Ime
...
Doktor (FK) ----> Doktori.SifraDoktora
2a) Eventualno, ako mislis da je ovaj odnos slozeniji, i da u jednom trenutku pacijent moze da ima vise svojih doktora, onda je odnos N:N, i onda ti treba treca tabela (ali tu tabelu ne treba nazvati Pregledi, nego npr. KoJeCijiLekar) i u njoj je kombinacija lekar+pacijent jedinstvena, pa treba bas takav primarni kljuc staviti: SifraPacijenta+SifraDoktora). Medjutim, ako je ovo slucaj, onda to u prevodu verovatno znaci da pacijent moze da ide kod bilo kog doktora, pa se ne bih ni trudio da evidentiram KoJeCijiLekar.
Zakljucak: mala je sansa da ce primarni kljuc SifraPacijenta+SifraLekara imati smisla.
Da produbim temu:
Ako si zainteresovan mozemo da pricamo i o modelu koji kombinuje oba slucaja.
Zelimo da zapisemo samo to da je Pera 22. januara dosao na pregled. Kod kog lekara? Pa, kod SVOG lekara, to je vec opisano stanjem.
Korisnik ce nam biti zahvalan sto je dovoljno da samo jednom upise da je Zika Perin lekar, a ne svaki put.
Medjutim, sta ako je Pera menajo lekare, mozemo li u ovakvom modelu saznati koji su ga sve lekari pregledali? To je vec nova tema...