⊗ppPmDOLT 381 of 447 menu

Taulukoiden linkittäminen tietokannoissa

Oletetaan, että meillä on taulukko käyttäjien nimistä ja kaupungeista, joissa he asuvat:

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

Tämän taulukon haittana on, että sama kaupunki toistuu useaan kertaan eri käyttäjille. Tämä johtaa joihinkin ongelmiin.

Ensinnäkin, jatkuva toistuminen johtaa siihen, että tietokanta alkaa käyttää paljon enemmän tilaa.

Toiseksi, kaupungeilla suoritettavien toimintojen suorittaminen on melko hankalaa. Esimerkiksi haluamme tulostaa ruudulle listan kaikista kaupungeista. Sen tekeminen näin ei ole yksinkertaista. Meidän on saatava kaikki käyttäjät heidän kaupunkineen, poistettava sitten saatujen kaupunkien duplikaatit ja vasta sitten saamme tämän listan.

Kuvittele nyt, että tietokannassa on 10000 käyttäjää 10 kaupungista - näiden 10 kaupungin takia meidän on haettava koko taulukko valtavasta määrästä rivejä - tuloksena on erittäin hidas toimenpide, joka kuluttaa turhaan resursseja.

Ongelman ratkaisu

Meidän on jaettava taulukkomme kahteen osaan: toiseen talletetaan kaupungit ja toiseen - käyttäjät. Samalla käyttäjätaulukossa on sarake city_id, joka viittaa käyttäjän kaupunkiin.

Joten, tehdään kaksi taulukkoa. Taulukko kaupungeilla:

cities
id name
1 city1
2 city2
3 city3

Taulukko käyttäjillä:

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

Oletetaan, että sinun täytyy tallentaa tuotteet (nimi, hinta, määrä) ja näiden tuotteiden kategoriat. Kuvaile tallennusrakenne.

Oletetaan, että sinun täytyy tallentaa joet ja meret, joihin nämä joet laskevat. Kuvaile tallennusrakenne.

Oletetaan, että sinun täytyy tallentaa kaupungit ja maat, joissa ne sijaitsevat. Kuvaile tallennusrakenne.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää