⊗ppPmDOLT 381 of 447 menu

Tabelite seostamine andmebaasides

Oletame, et meil on tabel kasutajate nimedega 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 toob kaasa mõned probleemid.

Esiteks, pidev kordamine viib selleni, et andmebaas hakkab võtma palju rohkem ruumi.

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

Ja nüüd kujutlegem, et andmebaasis on 10000 kasutajat 10 linnast - nende 10 linnani jõudmiseks peame kogu tabeli tooma välja suurest hulgast ridadest - selgub väga aeglane toiming mõttetu ressursside raiskamisega.

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

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

Oletame, et peate hoidma jõgesid ja meresid, millesse need jõed suubuvad. Kirjeldage haldusstruktuur.

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

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