⊗pyPmDOLT 122 of 129 menu

Vinculación de tablas en bases de datos en Python

Supongamos que tenemos una tabla con los nombres de usuarios y las ciudades en las que viven:

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

La desventaja de esta tabla es que la misma ciudad se repite varias veces para diferentes usuarios. Esto conduce a algunos problemas.

En primer lugar, la repetición constante conduce a que la base de datos comienza a ocupar mucho más espacio.

En segundo lugar, es bastante inconveniente realizar operaciones con las ciudades. Por ejemplo, queremos mostrar en pantalla la lista de todas las ciudades. Así no será posible hacerlo simplemente. Nos tendremos que obtener todos los usuarios junto con sus ciudades, luego eliminar los duplicados de las ciudades obtenidas y solo entonces obtendremos esta lista.

Y ahora imaginemos que en la base hay 10000 usuarios de 10 ciudades - para estas 10 ciudades tendremos que obtener toda la tabla con una enorme cantidad de filas - resultará una operación muy lenta con un desperdicio sin sentido de recursos.

Solución del problema

Necesitamos dividir nuestra tabla en dos: en una se almacenarán las ciudades, y en la segunda - los usuarios. Al mismo tiempo, en la tabla de usuarios habrá una columna city_id, que referenciará a la ciudad del usuario.

Entonces, hagamos dos tablas. Tabla con ciudades:

cities
id name
1 city1
2 city2
3 city3

Tabla con usuarios:

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

Tareas prácticas

Supongamos que necesita almacenar productos (nombre, precio, cantidad) y categorías de estos productos. Describa la estructura de almacenamiento.

Supongamos que necesita almacenar ríos y los mares en los que desembocan estos ríos. Describa la estructura de almacenamiento.

Supongamos que necesita almacenar ciudades y los países en los que se encuentran. Describa la estructura de almacenamiento.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar