⊗pyPmDOLT 122 of 129 menu

Vinculando tabelas em bancos de dados em Python

Suponha que temos uma tabela com os nomes dos usuários e as cidades onde eles moram:

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

A desvantagem desta tabela é que a mesma cidade se repete várias vezes para diferentes usuários. Isso leva a alguns problemas.

Em primeiro lugar, a repetição constante leva a que a base de dados comece a ocupar muito mais espaço.

Em segundo lugar, é bastante inconveniente executar operações com cidades. Por exemplo, queremos exibir na tela a lista de todas as cidades. Simplesmente não será possível fazer isso de forma direta. Teremos que obter todos os usuários junto com suas cidades, depois remover duplicatas das cidades obtidas e só então obteremos esta lista.

E agora imagine que na base há 10000 usuários de 10 cidades - para obter estas 10 cidades, teremos que extrair a tabela inteira com uma enorme quantidade de linhas - resultará numa operação muito lenta com um desperdício sem sentido de recursos.

Solução do problema

É necessário dividir nossa tabela em duas: numa serão armazenadas as cidades, e na segunda - os usuários. Além disso, na tabela de usuários haverá uma coluna city_id, que irá referenciar à cidade do usuário.

Então, vamos criar duas tabelas. A tabela com cidades:

cities
id name
1 city1
2 city2
3 city3

A tabela com usuários:

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

Tarefas práticas

Suponha que você precise armazenar produtos (nome, preço, quantidade) e categorias desses produtos. Descreva a estrutura de armazenamento.

Suponha que você precise armazenar rios e mares nos quais esses rios deságuam. Descreva a estrutura de armazenamento.

Suponha que você precise armazenar cidades e países nos quais elas estão localizadas. Descreva a estrutura de armazenamento.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar