⊗pyPmDOLT 122 of 129 menu

Liaison de tables dans les bases de données en Python

Supposons que nous ayons une table avec les noms d'utilisateurs et les villes où ils vivent :

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

L'inconvénient de cette table est que la même ville se répète plusieurs fois pour différents utilisateurs. Cela conduit à certains problèmes.

Tout d'abord, la répétition constante conduit au fait que la base de données commence à occuper beaucoup plus d'espace.

Deuxièmement, il est assez peu pratique d'effectuer des opérations sur les villes. Par exemple, nous voulons afficher à l'écran la liste de toutes les villes. Il ne sera pas simple de le faire ainsi. Nous devrons obtenir tous les utilisateurs avec leurs villes, puis supprimer les doublons des villes obtenues et seulement alors nous obtiendrons cette liste.

Imaginons maintenant que la base contienne 10000 utilisateurs de 10 villes - pour ces 10 villes, nous devrons récupérer toute la table avec un énorme nombre de lignes - ce sera une opération très lente avec un gaspillage de ressources absurde.

Solution au problème

Il faut diviser notre table en deux : dans une seront stockées les villes, et dans la seconde - les utilisateurs. Dans ce cas, dans la table des utilisateurs, il y aura une colonne city_id, qui va référencer la ville de l'utilisateur.

Alors, créons deux tables. La table des villes :

cities
id name
1 city1
2 city2
3 city3

La table des utilisateurs :

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

Tâches pratiques

Supposons que vous ayez besoin de stocker des produits (nom, prix, quantité) et les catégories de ces produits. Décrivez la structure de stockage.

Supposons que vous ayez besoin de stocker des rivières et les mers dans lesquelles ces rivières se jettent. Décrivez la structure de stockage.

Supposons que vous ayez besoin de stocker des villes et les pays dans lesquels elles se trouvent. Décrivez la structure de stockage.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser