[ Valerij Zajcev @ 15.06.2010. 16:42 ] @
Dizajnirajuci neku bazu naidjoh na sledece problemce:

Code:

Owner: { OwnerId, FirstName, LastName ... }
Candidate: { CandidateId, FirstName, LastName ... }
MedicalFile: { MedicalFileId, FileTitle, StartDate, ExpirationDate ... }

Ovaj MedicalFile, moze da ima i Owner i Candidate e ja sam onda sklepao ovako nesto:
Code:
MedicalFile: { MedicalFileId, FileTitle, StartDate, ExpirationDate, OwnerId, CandidateId, IsCandidate ... }

E sada gledam i nece ovo ovako da ide, ne svidja mi se, a nemam ideju kako drugacije da razmrsim ovo. Znaci ovako kako sam isplanirao morao bih iz aplikacije da proveravam da li je owner ili candidate pa na osnovu toga u ovu tabelu da unesem podatak tako da ili OwnerId ili CandidateId bude null.
Moze neko da mi pomogne da razmrsim ovo :(
[ lukeguy @ 15.06.2010. 17:38 ] @
Ako može da ima i jedno i drugo, MedicalFile treba da ima 2 FK-a, jedan prema Owner, drugi prema Candidate. Ako ti iz aplikacije upisuješ podatke, onda tamo možeš da kontrolišeš koji ključ se popunjava. Isto tako, prilikom učitavanja, uzimaš onaj FK koji nije null. Ako ti trebaju svi MedicalFile sa svojim Owner/Candidate, možeš da radiš UNION.

Doduše, nisi naveo šta je tačno problem, tj. šta pokušavaš da razrešiš. Druga stvar koju primećujem da imaš ista polja u Owner i Candidate, što znači da iz nekog razloga nisi uradio normalizaciju do kraja.
[ Zoran.Eremija @ 15.06.2010. 17:39 ] @
Ako sam Vas dobro razumeo da li to znaci da jedan drugog iskljucuju tj ili je OwnerId popunjen ili CandidateId u tabeli MedicalFile?

Ako je to tako tada se postavlja pitanje da li entiteti Owner i Candidate imaju iste atribute? AKo imaju onda je resenje u tome da ih spojite u jedan entitet koji bi nazvali Partner s time sto bi uveli novi entitet PartnerType.

[ Valerij Zajcev @ 15.06.2010. 18:00 ] @
Ok, oceigledno je da jos ne cvetam na polju dizajna baze. Sada vidim da sam mogao mozda da upakujem ne owner-a nego instructor i candidate u jednu tabelu. Ovo na slici je stanje kako se sada.
1) Kako sada kapiram, mogu Candidate i Instructor da stavim u jednu tabelu.
2) Mogu da napravim onda iz te nove tabele recimo "User" vezu sa MedicalFile 1-1, jer svako moze da ima samo 1 MedicalFile.
3) Tabela Training mora da onda ima dve veze sa tabelom User jer jedan je Candidate, a drugi je Instructor, da li je to ok tako?
[ Zoran.Eremija @ 15.06.2010. 18:28 ] @
Sada kada ste nam pokazali onda bi model mogao da izgleda kao na slici. S time sto je veza izmedju Partner i MedicalFile 0-1. Posto su sada u Entitetu Partner i Kandidati i instruktori to znaci da mogu i jedni i drugi imati jednu n-torku u entitetu MedicalFile.

[ Valerij Zajcev @ 15.06.2010. 18:29 ] @
Zapeo sam.
1) Kada stavim dva primarna kljuca u MedicalFile, dobijam vezu 1-n, a hocu 1-1?
2) Kako sada da povezem Training, UserId je Candidate, a InstructorId je Instructor, sada mi trebaju dve veze ka User, ne znam kako to da izvedem?
[ Valerij Zajcev @ 15.06.2010. 18:37 ] @
Pisali smo u isto vreme :)
Nedostatak iskustva nisam znao da mogu ovako da vezem tabele sa dva kljuca.
Btw koji program koristite za modelovanje?
[ Zoran.Eremija @ 15.06.2010. 18:37 ] @
Entitet MedicalFile nema potrebe da ima dva atributa u kljucu, jer kako ste rekli jedan kandidat ima 0 ili 1 MedicalFile.
Pogledajte model pre vaseg posta.

:-) opet smo u isto vreme

Nezamenjivi ERwin...