⊗ppPmDOLT 381 of 447 menu

Tabellrelasjoner i databaser

La oss si at vi har en tabell med brukernavn og byene de bor i:

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

Ulempen med denne tabellen er at samme by gjentas flere ganger for forskjellige brukere. Dette fører til noen problemer.

For det første fører konstant gjentakelse til at databasen begynner å oppta mye mer plass.

For det andre er det ganske upraktisk å utføre operasjoner med byer. For eksempel, hvis vi ønsker å vise en liste over alle byer på skjermen, vil det ikke være enkelt å gjøre det. Vi må hente alle brukere sammen med byene deres, deretter fjerne duplikater fra de innhentede byene og først da får vi denne listen.

La oss nå tenke oss at databasen har 10000 brukere fra 10 byer - for disse 10 byene må vi hente hele tabellen med et stort antall rader - det blir en veldig treg operasjon med meningsløs ressursbruk.

Løsning på problemet

Vi må dele tabellen vår i to: i den ene lagres byer, og i den andre - brukere. Samtidig vil det i bruker-tabellen være en kolonne city_id som vil referere til brukerens by.

Så, la oss lage to tabeller. Tabell med byer:

cities
id name
1 city1
2 city2
3 city3

Tabell med brukere:

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

La oss si at du må lagre varer (navn, pris, antall) og kategorier for disse varene. Beskriv lagringsstrukturen.

La oss si at du må lagre elver og hav som disse elvene munner ut i. Beskriv lagringsstrukturen.

La oss si at du må lagre byer og land som de befinner seg i. Beskriv lagringsstrukturen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis