Bosna i Hercegovina



#1 06.07.2019-23:26
Davež Elmer Offline
Clan
Registrovan/a od: 14.08.2017-10:37
Komentari: 36


Subject: Nedoumice oko tabela koje su potrebne
U Access-u sam praktično početnik pa sam htio nešto malo priučiti. Krenuo sam vježbati na urađenom primjeru za bazu biblioteka iz Škole Access-a, sa nekadašnjeg sajta www.praktikum.rs. Ima se tu šta naučiti, ko je početnik kao ja, ali mi je sama organizacija tabela nejasna. Ovaj isti primjer, po meni nepotpun, se provlači kroz dosta skripti i udžbenika. Njihove tabele su povezane kao na slici

Da zanemarimo što bi atributi ime i prezime trebali biti odvojeni, autori i izdavači posebne tabele i slično, meni ovdje nedostaju sledeće stvari:
-knjiga može imati samo jednog autora a trebalo bi da može i više
-Ne znamo koliko ima primjeraka koje knjige. Ako bi i znali koliko ima primjeraka ne bi znali ko je iznajmio primjerak koji je oštećen
-itd.
Prvo sam probao riješiti preko tabele KnjigaAutor. Za drugo sam dodao tabele Izdanje i Primjerak. To izgleda ovako

Nisam siguran da su dobro povezane tabele Clan, Iznajmljivanje i Primjerak. Svaki komentar je dobrodošao.
Ovaj komentar je mijenjan 2 puta. zadnja izmjena 06.07.2019-23:29 od strane Davež Elmer. ↑  ↓

#2 07.07.2019-08:58
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,944


Subject: Re: Nedoumice oko tabela koje su potrebne
Kao prvo za pocetnila je ovo vise nego dobro.
Sto je bitno ovo ovako moze funkcionisati, medjutim ja imam neke sugestije.
Kao prvo hocu napomenuti da nije dobro ici tabelama 3 puta 1 na vise a ne prenijeti dva kljuca kao sto si to uradio izmedju tabela Primjerak i iznajmljivanje.
Tu ti bas taj dupli kljuc po meni i nije potreban. Kljuc bi bio polje PrimjerakBroj jer ti radis po primjercima
a ne po knjigama pa ti je ovo ujedno i osnovna tabela,
U ovu tabelu bi ja jos dodao polja:
IdKnjge
IdAutora
IdIzdavaca
IdOstecenja
Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 07.07.2019-12:33 od strane Avko. ↑  ↓

#3 07.07.2019-15:21
Davež Elmer Offline
Clan
Registrovan/a od: 14.08.2017-10:37
Komentari: 36


Subject: Re: Nedoumice oko tabela koje su potrebne
Ako sam Vas dobro razumio treba da izbacim tabelu Izdanje a da dodam ove atribute tabeli Primjerak?
Ja sam kontao ovako. Neka imam knjigu Baze podataka i npr. prvo izdanje je izdalo Izdavačko preduzeće 1 a drugo izdanje Izdavačko preduzeće 2. Od prvog izdanja imam 3 primjerka i vrijednosti za PrimjerakBroj su 1, 2 i 3. Od drugog izdanja imam 2 primjerka i vrijednosti za PrimjerakBroj su 1 i 2. To mogu zamijeniti i staviti da je IdPrimjerka primarni ključ. ISBN ako bih pisao u tabeli Primjerak ponavljao bi mi se za svako izdanje, za prvo tri a za drugo dva puta.
Pošto Vas nisam razumio da li treba da izbacim tabelu Izdanje ovako sam promijenio

Evo i tabela u prilogu

Prilozi:
Informacije o fajlu: rar  Biblioteka.rar
Preuzimanja: 6
Veličina: 22.57 KB

↑  ↓

#4 07.07.2019-22:44
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,944


Subject: Re: Nedoumice oko tabela koje su potrebne
Nista ne trebas brisati samo dodati par polja jer ce biti lakse za rad.

Prilozi:
Informacije o fajlu: zip  Bibliotekazxz.zip
Preuzimanja: 5
Veličina: 38.29 KB


Pozdrav
↑  ↓

#5 07.07.2019-23:03
Davež Elmer Offline
Clan
Registrovan/a od: 14.08.2017-10:37
Komentari: 36


Subject: Re: Nedoumice oko tabela koje su potrebne
Sada imam nova pitanja. Za šta nam trebaju IdKnjige i IdIzdavača u tabeli Primjerak? Vidim da ste za povezivanje tabele Ostecenja sa tabelom Primjerak koristili LEFT JOIN. Nije mi jasno kada se to koristi za tabele u Relationships i šta se time dobija. Jasno mi je za upite kako radi ali ovo ne. Ja sam mislio da to ima veze samo sa upitima.
↑  ↓

#6 07.07.2019-23:35
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,944


Subject: Re: Nedoumice oko tabela koje su potrebne
sto se tice veze evo ti link.
Ako budes trebao dodatna pojasnjenja tu smo.
http://icentar.ba/showtopic.php?id=7853
Napomenuo sam vec da nije dobro ici puno po dubini bez prenosenja kljuca.
Primjera radi ako trazis autore nekog primjerka onda moras u upit ubaciti tabelu izdanje te tabelu knjiga autor.
Puno je to tabela pa bi to moglo u neko doba usporiti.
Ako imas preneseni kljuc onda je to lakse.
Nemoras relaciono vezati jer ces pri unosu imati lukap tabele sa combom.
Pozdrav
↑  ↓

#7 08.07.2019-10:24
Davež Elmer Offline
Clan
Registrovan/a od: 14.08.2017-10:37
Komentari: 36


Subject: Re: Nedoumice oko tabela koje su potrebne
Ok, mislim da sam skontao ovo drugo, moglo je i bez prenesenih ključeva ali je ovako bolje zbog performansi baze. Što se tiče JOIN-a kontam kako rade upiti. LEFT JOIN daje kompletni skup redova iz tabele Ostecenja sa odgovarajućim podacima iz tabele Primjerak. I iscrtao sam to.

Ukoliko nema podudaranja, desna strana bi imala NULL vrijednosti. Čak mislim da bi u ovom našem slučaju i INNER JOIN, prva opcija u Join properties, dala isti rezultat jer naša tabela Ostecenja nije neki šifarnik oštećenja već mi za konkretno oštećenje ubacujemo podatke pa ne bi trebalo da ima NULL vrijednosti u LEFT JOIN-u. Mene zbunjuje koja je razlika kad npr. LEFT JOIN izaberemo u Relationships, hoće li mi to nešto ograničiti ili promijeniti kod unosa, brisanja, izmjene podataka u tabele? Ili sam u Relationships mogao ostaviti i default-nu opciju a kad kreiram upit da izaberem LEFT JOIN? To nikako da skontam.
↑  ↓

#8 11.07.2019-08:21
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,944


Subject: Re: Nedoumice oko tabela koje su potrebne
Lijepo si ovo opisao.
Nece se niosta desiti ali cesto puta pri izradi upita poslije zaboravimo ovo promijeniti a sa ovakvom vezom eto mozes vidjeti sve one koji nemaju ostecenje.
Stvar je u navici. Nemoraju se tabele ni vezati po svaku cijenu u relacijama ali imamo bolji uvid kako sve to izgleda i naravno ima tu jos prednosti koje si ti gore naveo.
Kodne tabele i nije bas pametno relacijski vezati jer po meni sa takvom vezom ces imati vise problema nego pomoci.
Obicno u accessu je stavvljamo kao lukap sa vise kolona i onda svakako nemozemo dodavati ono cega nema jer se combo sam postavi na opciju fukusiranja na listu.
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 16.07.2019-17:22.