⊗pyPmDOLT 122 of 129 menu

Tabelite seostamine andmebaasides Pythonis

Oletame, et meil on tabel kasutajate nimede ja linnadega, kus nad elavad:

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

Selle tabeli puuduseks on see, et sama linn kordub mitu korda erinevate kasutajate puhul. See viib mõningate probleemideni.

Esiteks, pidev kordamine viib selleni, et andmebaas hakkab hõivama palju rohkem ruumi.

Teiseks on linnadega toimingute tegemine piisavalt ebamugav. Näiteks tahame kuvada ekraanil kõikide linnade nimekirja. Nii lihtsalt seda teha ei õnnestu. Me peame saama kõik kasutajad koos nende linnadega, seejärel eemaldama saadud linnadest dubleerivad kirjed ja alles siis saame selle nimekirja.

Ja nüüd kujutlegem, et andmebaasis on 10000 kasutajat 10 linnast - nende 10 linna pärast peame välja võtma kogu tabeli, mis koosneb tohutust arvust ridadest - see on väga aeglane toiming, mis kulutab ressursse mõttetult.

Probleemi lahendus

Peame oma tabeli jagama kaheks: ühes hoitakse linnu ja teises - kasutajaid. Samal ajal on kasutajate tabelis veerg city_id, mis viitab kasutaja linnale.

Niisiis, teeme kaks tabelit. Linnade tabel:

cities
id name
1 city1
2 city2
3 city3

Kasutajate tabel:

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

Praktilised ülesanded

Oletame, et peate hoidma kaupu (nimi, hind, kogus) ja nende kaupade kategooriaid. Kirjeldage hoidmise struktuur.

Oletame, et peate hoidma jõgesid ja meresid, kuhu need jõed suubuvad. Kirjeldage hoidmise struktuur.

Oletame, et peate hoidma linnu ja riike, milles nad asuvad. Kirjeldage hoidmise struktuur.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu