Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.377 pregleda

Najnovija ↓

Problem oko relacija 3 tabele 15.06.2010. u 17:42 · pre 199 meseci #1
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 :(
Re: Problem oko relacija 3 tabele 15.06.2010. u 18:38 · pre 199 meseci #2
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.
Re: Problem oko relacija 3 tabele 15.06.2010. u 18:39 · pre 199 meseci #3
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.

Potpis
http://zoraneremija.wix.com/eremijacv
Re: Problem oko relacija 3 tabele 15.06.2010. u 19:00 · pre 199 meseci #4
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?
Re: Problem oko relacija 3 tabele 15.06.2010. u 19:28 · pre 199 meseci #5
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.

Potpis
http://zoraneremija.wix.com/eremijacv
Re: Problem oko relacija 3 tabele 15.06.2010. u 19:29 · pre 199 meseci #6
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?
Re: Problem oko relacija 3 tabele 15.06.2010. u 19:37 · pre 199 meseci #7
Pisali smo u isto vreme :)
Nedostatak iskustva nisam znao da mogu ovako da vezem tabele sa dva kljuca.
Btw koji program koristite za modelovanje?
Re: Problem oko relacija 3 tabele 15.06.2010. u 19:37 · pre 199 meseci #8
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...
Potpis
http://zoraneremija.wix.com/eremijacv
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme