⊗pyPmDOLT 122 of 129 menu

Tabelkoppeling in databases in Python

Stel we hebben een tabel met gebruikersnamen en de steden waar ze wonen:

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

Het nadeel van deze tabel is dat dezelfde stad meerdere keren wordt herhaald voor verschillende gebruikers. Dit leidt tot enkele problemen.

Ten eerste leidt het constante herhalen ertoe dat de database veel meer ruimte gaat innemen.

Ten tweede is het behoorlijk onhandig om bewerkingen met steden uit te voeren. Stel, we willen een lijst met alle steden op het scherm tonen. Zo eenvoudig is dat niet te doen. We zullen alle gebruikers samen met hun steden moeten ophalen, dan duplicaten verwijderen uit de verkregen steden en pas dan krijgen we deze lijst.

Stel je nu voor dat er in de database 10000 gebruikers zijn uit 10 steden - voor deze 10 steden moeten we de hele tabel met een enorm aantal rijen ophalen - het wordt een erg trage operatie met zinloze verspilling van resources.

Oplossing voor het probleem

We moeten onze tabel splitsen in twee: in de ene worden steden opgeslagen, en in de tweede - gebruikers. Tegelijkertijd zal er in de tabel met gebruikers een kolom city_id zijn, die zal verwijzen naar de stad van de gebruiker.

Laten we dus twee tabellen maken. Tabel met steden:

cities
id name
1 city1
2 city2
3 city3

Tabel met gebruikers:

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

Praktische opdrachten

Stel dat je producten moet opslaan (naam, prijs, hoeveelheid) en de categorieën van deze producten. Beschrijf de opslagstructuur.

Stel dat je rivieren en de zeeën moet opslaan waarin deze rivieren uitmonden. Beschrijf de opslagstructuur.

Stel dat je steden en landen moet opslaan waarin ze zich bevinden. Beschrijf de opslagstructuur.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren