⊗ppPmDOLT 381 of 447 menu

Povezivanje tabela u bazama podataka

Recimo da imamo tabelu sa imenima korisnika i gradovima u kojima žive:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

Nedostatak ove tabele je u tome što se isti grad ponavlja više puta za različite korisnike. To dovodi do određenih problema.

Prvo, stalno ponavljanje dovodi do toga da baza podataka počinje da zauzima mnogo više prostora.

Drugo, prilično je nezgodno izvršavati operacije sa gradovima. Na primer, želimo da prikažemo na ekranu spisak svih gradova. Tako jednostavno to neće uspeti. Moraćemo da dobijemo sve korisnike zajedno sa njihovim gradovima, zatim da uklonimo duplikate iz dobijenih gradova i tek tada ćemo dobiti ovaj spisak.

A sada zamislite da u bazi ima 10000 korisnika iz 10 gradova - radi ovih 10 gradova moraćemo da izvučemo celu tabelu iz ogromnog broja redova - ispastaće vrlo spora operacija sa besmislenim trošenjem resursa.

Rešenje problema

Potrebno je da podelimo našu tabelu na dve: u jednoj će se čuvati gradovi, a u drugoj - korisnici. Pritom će u tabeli sa korisnicima postojati kolona city_id, koja će se odnositi na grad korisnika.

Dakle, hajde da napravimo dve tabele. Tabela sa gradovima:

cities
id name
1 city1
2 city2
3 city3

Tabela sa korisnicima:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

Recimo da vam je potrebno da čuvate proizvode (naziv, cena, količina) i kategorije tih proizvoda. Opišite strukturu čuvanja.

Recimo da vam je potrebno da čuvate reke i mora u koja se ove reke ulivaju. Opišite strukturu čuvanja.

Recimo da vam je potrebno da čuvate gradove i države u kojima se oni nalaze. Opišite strukturu čuvanja.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij