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

Problem sa relacijama

[es] :: Access :: Problem sa relacijama

[ Pregleda: 3455 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Problem sa relacijama12.12.2005. u 11:52 - pre 223 meseci
Imam popis ucenika (Tablica_Ucenik):

Ime_Ucenika (primary key)
Maticni_Broj (Number)

te imam popis predmeta koje ima taj ucenik (Tablica_Predmeti):

Predmeti (Primary key)
Ime_Ucenika

Moj je problem kako napraviti relaciju u kojoj svaki ucenik moze imati sve iste predmete kao i ostali ucenici, ali da se zabrani dupliciranje istog predmeta za istog ucenika. Pomozite :) Hvala
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Problem sa relacijama12.12.2005. u 13:39 - pre 223 meseci
Treba da malo preuredis tabele:

Ti imas:
Citat:

Ime_Ucenika (primary key)
Maticni_Broj (Number)

te imam popis predmeta koje ima taj ucenik (Tablica_Predmeti):

Predmeti (Primary key)
Ime_Ucenika

a trebalo bi:
Code:

tablica Ucenici:
  Ime_Ucenika 
  Maticni_Broj (Number, primary key)

Tablica_Predmeti:
  Predmeti (Primary key)
  Maticni_Broj (primary_key)

i jost ti treba relacija sa tablice Ucenici na tablicu Predmeti "u tablici predmeti ne moze da postoji Maticni_Broj ako ne postoji u tablici Ucenici isti taj maticni broj". Znaci, na strani 1 je Ucenici, na strani vise je Predmeti, vezno polje Maticni_broj, enforce referential integrity.


Zasto ovako?
Ime_Ucenika nije dobar primary key, pre ili kasnije pojavice se dva ucenika sa istim imenom i prezimenom. Maticni broj je jedinstven i ako se pojave dva ucenika sa istim maticnim brojem, onda je sigurno u pitanju greska u kucanju.

Posto smo proglasili MaticniBroj za PK u tabeli Ucenici, prenecemo taj PK u tabelu predmeti. U tabeli Predmeti, PK je kombinacija polja (MaticniBroj, PredmetID). Posto PK mora biti jedinstven, svaki student moze imati svaki predmet najvise jedan put, dva puta ne moze. Znaci, ovo ti ispunjava zahtev koji is postavio na pocetku - da se jedniom uceniku ne dodeli isti predmet dva puta.

Kako garantovati da svaki ucenik ima sve predmete koje treba, da ne feli neki? Na nivou tabela, ne moze se garantovati. U momentu kad uneses novog ucenika on nema ni jeda predmet. Onda mu na neki nacin dodelis sve predmete koji trebaju, jedan po jean, ili ceo paket. To moze da se isprogramira, ili rucno da se dodaju predmeti, koliko treba.

:-)
 
Odgovor na temu

aburnaby
Staniša Avdalović
Subotica

Član broj: 49743
Poruke: 43
*.vojvodinaput.co.yu.



+22 Profil

icon Re: Problem sa relacijama12.12.2005. u 13:42 - pre 223 meseci
Zdravo,

Mislim da u stvari imas relaciju vise-prema-vise tj. N:M pa prema tome najbolje je da imas jednu relaciju, nazovimo je ucenik(ucenik_id, ime, prezime, maticni_broj,...), potom relaciju ucenik_predmet(ucenik_id, predmet_id) ovo je tabela koja povezuje tabelu ucenik i tabelu predmet kompozitnim (slozenim) kljucevima iz tabele ucenik i tabele predmet, i treca relacija je predmet(predmet_id, ...). Obrati paznju da u ovoj relaciji predmet nemas foreign kljuc iz tabele ucenik(ucenik_id). Na ovaj nacin je ispunjen zahtev iz Vaseg posta.

Nadam se da sam Vam pomogao.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: Problem sa relacijama12.12.2005. u 14:16 - pre 223 meseci
Zahvaljujem na oba odgovora. Rjesio sam problem upotrebom pomocne tablice i slozenog kljuca...
 
Odgovor na temu

[es] :: Access :: Problem sa relacijama

[ Pregleda: 3455 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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