⊗pyPmDOLT 122 of 129 menu

Collegamento di tabelle nei database in Python

Supponiamo di avere una tabella con i nomi degli utenti e le città in cui vivono:

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

Lo svantaggio di questa tabella è che la stessa città si ripete più volte per utenti diversi. Ciò porta ad alcuni problemi.

In primo luogo, la ripetizione continua porta al fatto che il database inizia a occupare molto più spazio.

In secondo luogo, è piuttosto scomodo eseguire operazioni con le città. Ad esempio, vogliamo visualizzare un elenco di tutte le città. Non sarà possibile farlo in modo semplice. Dovremo ottenere tutti gli utenti insieme alle loro città, poi rimuovere i duplicati dalle città ottenute e solo allora otterremo questo elenco.

E ora immaginiamo che nel database ci siano 10000 utenti da 10 città - per queste 10 città dovremo estrarre l'intera tabella con un enorme numero di righe - risulterà un'operazione molto lenta con uno spreco insensato di risorse.

Soluzione al problema

È necessario suddividere la nostra tabella in due: in una verranno memorizzate le città, e nella seconda - gli utenti. Allo stesso tempo, nella tabella degli utenti ci sarà una colonna city_id, che riferirà alla città dell'utente.

Quindi, creiamo due tabelle. Tabella con le città:

cities
id name
1 city1
2 city2
3 city3

Tabella con gli utenti:

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

Compiti pratici

Supponiamo che tu debba memorizzare prodotti (nome, prezzo, quantità) e le categorie di questi prodotti. Descrivi la struttura di memorizzazione.

Supponiamo che tu debba memorizzare fiumi e mari in cui questi fiumi sfociano. Descrivi la struttura di memorizzazione.

Supponiamo che tu debba memorizzare città e paesi in cui si trovano. Descrivi la struttura di memorizzazione.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta