Liaison de tables dans les bases de données
Supposons que nous ayons une table avec les noms des utilisateurs et les villes où ils vivent :
| 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 est répétée plusieurs fois pour différents utilisateurs. Cela entraîne certains problèmes.
Tout d'abord, la répétition constante fait que la base de données occupe 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 si simple de le faire. 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 - cela deviendra
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 la table des utilisateurs, il y aura une colonne
city_id, qui référencera
la ville de l'utilisateur.
Alors, créons deux tables. La table des villes :
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
La table des utilisateurs :
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
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.