Prikaz jedne poruke
Stara 20.2.2011, 0:47   #17
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Određen forumom Re: SQL baze podataka

Citat:
Belphegor kaže: Pregled poruke
Sto se tice SQL-a imam neku "sliku" sta u stvari predstavljaju baze podataka, sama rec "relacione baze" znaci da su neki rodjaci (grubo prevedeno relatives) u pitanju, odnosno imaju neka zajednicka (common) svojstva koja se mogu sortirati/klasifikovati.
Evo probaću da ti objasnim ovu relaciju na primeru ovog foruma.
Vbulletin sigurno ima baze podataka iza sebe, znači drži gomilu tabela o različitim delovima foruma.
Uzećemo da postoji jedna tabela posts, koja drži postove korisnika, zajedno sa id brojevima tema u kojima su postovi, id brojevima korisnika koji su ih napisali, vremenu itd. Možemo recimo da izvršimo sledeću SQL naredbu:
Kod:
SELECT * FROM posts WHERE uid=8852
(neka je uid polje sa user id-om korisnika koji je post napisao)
Ovo će nam vratiti sve moje postove (uid=8852 sam ja ). Recimo da hoćemo da vidimo u kojoj je temi moj zadnji post. To zahteva da uradimo nešto drugačiji SQL upit:
Kod:
SELECT * FROM posts WHERE uid=8852 ORDER BY time DESC
ORDER BY sortira po nekoj koloni, a DESC je skraćeno od descending (opadajuće), tako da prvi vraćeni red ima najveću time vrednost (najkasniji post).
Sada bismo iz php-a uzeli prvi red koji će zbog opadajućeg sortiranja po vremenu sadržati moj poslednji post, i pogledati recimo polje tid u kome je smešten id thread-a u kome je dotični post. Recimo da je taj tid jednak 68413 (ova tema).
E sad, taj id ništa ne znači krajnjem korisniku. Da bismo korisniku prikazali ime teme (koje za njega ima više smisla nego samo id), uradićemo drugi upit, ovaj put sa drugom tabelom:
Kod:
SELECT * FROM threads WHERE tid=68413
(threads je tabela koja sadrži sve teme na forumu)
Kao rezultat ovog trebali bismo da dobijemo jedan red (odnosno thread koji je u pitanju) i iz tog reda izvučemo, recimo, polje 'name' koje sadrži naziv teme. Onda bismo to prikazali korisniku.
Tu sad vidimo relaciju između 'tid' polja u dve tabele — oni su tako povezani da iz jedne tabele možemo dobiti više informacija o nečemu.
Ovo je banalan primer ali ilustruje (koliko-toliko) o čemu se tu u stvari radi
Geomaster je offline   Odgovor sa citatom ove poruke