⊗pyPmDOLT 122 of 129 menu

Länkning av tabeller i databaser i Python

Låt oss säga att vi har en tabell med användarnamn och städer där de bor:

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

Nackdelen med denna tabell är att samma stad upprepas flera gånger för olika användare. Detta leder till vissa problem.

För det första leder den konstanta upprepningen till att databasen tar upp mycket mer utrymme.

För det andra är det ganska obekvämt att utföra operationer med städer. Till exempel vill vi visa en lista över alla städer på skärmen. Så här enkelt går det inte att göra. Vi måste hämta alla användare tillsammans med deras städer, sedan ta bort dubbletter från de erhållna städerna och först då får vi denna lista.

Och nu föreställ dig att det finns 10000 användare i databasen från 10 städer - för dessa 10 städer måste vi hämta hela tabellen med ett enormt antal rader - det blir en mycket långsam operation med meningslös slöseri med resurser.

Lösning på problemet

Vi behöver dela upp vår tabell i två: i en kommer städer att lagras, och i den andra - användare. Samtidigt kommer det i tabellen med användare att finnas en kolumn city_id, som kommer att referera till användarens stad.

Så, låt oss skapa två tabeller. Tabell med städer:

cities
id name
1 city1
2 city2
3 city3

Tabell med användare:

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

Praktiska uppgifter

Låt oss säga att du behöver lagra varor (namn, pris, antal) och kategorier av dessa varor. Beskriv lagringsstrukturen.

Låt oss säga att du behöver lagra floder och hav, i vilka dessa floder mynnar ut. Beskriv lagringsstrukturen.

Låt oss säga att du behöver lagra städer och länder, i vilka de finns. Beskriv lagringsstrukturen.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa