⊗pyPmDOLT 122 of 129 menu

Povezovanje tabel v bazah podatkov v Pythonu

Recimo, da imamo tabelo z imeni uporabnikov in mesti, v katerih živijo:

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

Pomanjkljivost te tabele je, da se isto mesto večkrat ponovi za različne uporabnike. To vodi do določenih težav.

Prvič, stalno ponavljanje vodi do tega, da baza podatkov začne zasedati veliko več prostora.

Drugič, je precej neprijetno izvajati operacije z mesti. Na primer, želimo prikazati na zaslon seznam vseh mest. Tako preprosto tega ne moremo narediti. Morali bomo dobiti vse uporabnike skupaj z njihovimi mesti, nato odstraniti dvojnike iz dobljenih mest in šele takrat bomo dobili ta seznam.

In zdaj si predstavljajmo, da je v bazi 10000 uporabnikov iz 10 mest - za teh 10 mest bomo morali pridobiti celotno tabelo iz ogromnega števila vrstic - izkazala se bo zelo počasna operacija z brezsmensko porabo virov.

Rešitev problema

Potrebno je razdeliti našo tabelo na dve: v eni se bodo shranjevala mesta, v drugi pa - uporabniki. Pri tem bo v tabeli z uporabniki stolpec city_id, ki se bo skliceval na mesto uporabnika.

Torej, naredimo dve tabeli. Tabela z mesti:

cities
id name
1 city1
2 city2
3 city3

Tabela z uporabniki:

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

Praktične naloge

Recimo, da morate shranjevati izdelke (naziv, cena, količina) in kategorije teh izdelkov. Opišite strukturo shranjevanja.

Recimo, da morate shranjevati reke in morja, v katera se te reke izlivajo. Opišite strukturo shranjevanja.

Recimo, da morate shranjevati mesta in države, v katerih se nahajajo. Opišite strukturo shranjevanja.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni