Kreiranje padajuće liste u tabeli sa vrednostima iz druge tabele/upita

Pošto je kreirana tabela Mesto, potrebno je opet otvoriti tabelu Učenici u Design View. Sada je potrebno podesiti da polje Mesto ne bude tipa Text, već tipa Number. Ovako će se dobiti situacija da se za učenike ne upisuje naziv mesta, nego IDmesta koje već postoji u tabeli Mesto. Dalje, potrebno je podesiti da se za vrednosti polja Mesto biraju postojeće vrednosti iz tabele Mesto u okviru padajuće liste (Combo box). Postaviti kursor na polje Mesto i u okviru tab-a Lookup izabrati da ovo polje bude tipa Combo box. Row Source Type treba da ima vrednost Table/Query, jer se vrednosti uzimaju iz određene tabele (tj. iz tabele Mesto), a u okviru padajuće liste Row Source izabrati tabelu Mesto.

Sledeće polje je Bound Column i u njemu se označava koje polje iz tabele Mesto će biti zapamćeno kada se izabere konkretno mesto. Pošto je atribut mesto tipa Number, onda će se ono vezivati za polje IDmesta tabele Mesto. Dakle, u polje Bound Column treba upisati vrednost 1 (što znači prva kolona), jer prva kolona tabele Mesto je IDmesta koje je tipa Number (odnosno AutoNumber). Sa Column Count označava se koliko kolona će se ukupno prikazivati u ovoj padajućoj listi počevši brojanje od prve kolone. Dakle, ukoliko treba da se u padajućoj listi prikazuju nazivi mesta, upisati broj 2, što znači prva i druga kolona (IDmesta i naziv). U polje Column Widths je potrebno upisati vrednost 0 (nula), što znači da se u padajućoj listi neće prikazivati prva kolona iz tabele Mesto (dakle, neće se videti IDmesta, nego samo nazivi svih mesta upisanih u tabelu Mesto).

Ovde postoje još dve zanimljivosti na koje treba obratiti pažnju. Allow Multiple Values, ukoliko se podesi na Yes, označava da za učenika može da se unese više mesta u kojima stanuje. U ovom primeru to neće biti opcija, jer nema smisla, ali za neki drugi primer može biti zanimljivo.

Sledeća interesantna opcija je Allow Values List Edits. Ovo će kasnije biti objašnjeno kada bude bilo više reči o formama, a za sada neka ima vrednost Yes.

Sva objašnjena podešavanja prikazana su na sledećoj slici (Slika 1).

kreiranjepadajuce341
Slika 1

Isti postupak potrebno je ponoviti za kolonu Razredni, jer je jednostavnije da se iz padajuće liste bira ime i prezime nadređenog, nego da se upisuje IDučenika razrednog. Podešavanja za atribut Razredni prikazana su na sledećoj slici (Slika 2).

kreiranjepadajuce342
Slika 2

Kreiranje tabele za agregaciju

Preostalo je još da se kreira tabela Smer.

Učenici (IDučenika, ime, prezime, datum rođenja, fotografija, razredni, pol, smer)
Smer (IDsmera, naziv)
Istorija učenika (IDučenika, IDsmera, Datum rođenja, Današnji datum, Godine starosti)

U relaciji Učenici ovaj put su zanemareni spoljni ključevi koji nastaju zbog veza sa drugim relacijama, kako bi se veza sa relacijom Smer lakše razumela.

Veza koja nastaje između Učenici i Smera razlikuje se od veza Učenici sa Telefonom i Mestom. Iz proširenog modela objekti-veze uočava se da je ova veza tipa više-ka-više. U tom slučaju veza postaje novi entitet koji za svoj primarni ključ uzima primarne ključeve entiteta koji učestvuju u vezi. Dakle, veza sa nazivom Smer postaje entitet sa složenim primarnim ključem IDučenika i IDsmera, a takođe sadrži svoje atribute Datum rođenja, Današnji datum i Godine starosti. Kako Istorija učenika postaje entitet, tako se kreira istoimena tabela u bazi podataka. Na sledećim slikama (Slika 3 i Slika 4) prikazane su tabele Smer i Istorija učenika, respektivno.

kreiranjepadajuce343
Slika 3

kreiranjepadajuce344
Slika 4

U tabeli Istorija učenika potrebno je podesiti složeni primarni ključ. Ovo je objašnjeno prilikom kreiranja primarnog ključa tabele Telefoni. Za atribut Godine starosti potrebno je specificirati da je u pitanju tip podataka Number.

Takođe su bitna sledeća tri polja, Precision, Scale i Decimal Places. Precision označava maksimalnu dužinu broja koja će moći da se sačuva u bazi podataka, računajući i celobrojni i decimalni deo broja. Scale se odnosi samo na maksimalnu dužinu decimalnog dela broja, a Decimal Places označava koliko će se brojeva prikazivati iza decimalnog zareza. Važno je uočiti odnos između Scale i Decimal Places. Ukoliko se za Scale upiše 2, a za Decimal Places 3, kada se unese broj 100,456, baza podataka će zapamtiti 100,450, jer se pamte samo 2 broja iza decimalnog zareza, a prikazuju se 3, pa je zato treći broj nula. Da bi se sačuvao i treći broj iza decimalnog zareza, potrebno je i vrednost za Scale postaviti na 3. Međutim, ukoliko bi vrednost Scale bila 4, a vrednost Decimal Places 3, prilikom upisivanja broja 100,4567 bila bi zapamćena vrednost 100,457, jer bi četvrti broj iza zareza uticao na zaokruživanje broja, a da je Scale vrednost 3, onda četvrti broj ne bi uticao na zaokruživanje.

U tabeli učenici kreirajte novu kolonu koja će se nazivati Hobi. Otvorite tabelu u Design View, odaberite tip podataka (Data Type) Lookup Wizards… (slika 5), onda

kreiranjepadajuce345
Slika 5

Onda odaberite opciju I wil type in the values that I want, onda kliknite na Next (slika 6)

kreiranjepadajuce346
Slika 6

Posle toga ispišite sve hobije koje želite i onda kliknite na Next (slika 7).

kreiranjepadajuce347
Slika 7

Posle toga štiklirajte opciju Allow Multiple Values (slika 8) zbog toga što se jedna osoba može imati nekoliko hobija.

kreiranjepadajuce348
Slika 8

Komentariši