⊗pyPmDOLT 122 of 129 menu

Łączenie tabel w bazach danych w Pythonie

Załóżmy, że mamy tabelę z nazwami użytkowników i miastami, w których mieszkają:

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

Wadą tej tabeli jest to, że to samo miasto powtarza się kilka razy dla różnych użytkowników. Prowadzi to do pewnych problemów.

Po pierwsze, ciągłe powtarzanie prowadzi do tego, że baza danych zajmuje znacznie więcej miejsca.

Po drugie, dość niewygodne jest wykonywanie operacji na miastach. Na przykład, chcemy wyświetlić na ekranie listę wszystkich miast. Nie da się tego zrobić tak po prostu. Będziemy musieli pobrać wszystkich użytkowników razem z ich miastami, następnie usunąć duplikaty z otrzymanych miast i dopiero wtedy otrzymamy tę listę.

A teraz wyobraźmy sobie, że w bazie jest 10000 użytkowników z 10 miast - dla tych 10 miast będziemy musieli pobrać całą tabelę z ogromną liczbą wierszy - będzie to bardzo wolna operacja z bezsensownym marnowaniem zasobów.

Rozwiązanie problemu

Należy podzielić naszą tabelę na dwie: w jednej będą przechowywane miasta, a w drugiej - użytkownicy. Jednocześnie w tabeli z użytkownikami będzie kolumna city_id, która będzie odwoływać się do miasta użytkownika.

A więc, stwórzmy dwie tabele. Tabela z miastami:

cities
id name
1 city1
2 city2
3 city3

Tabela z użytkownikami:

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

Zadania praktyczne

Załóżmy, że musisz przechowywać produkty (nazwa, cena, ilość) i kategorie tych produktów. Opisz strukturę przechowywania.

Załóżmy, że musisz przechowywać rzeki i morza, do których te rzeki uchodzą. Opisz strukturę przechowywania.

Załóżmy, że musisz przechowywać miasta i kraje, w których się znajdują. Opisz strukturę przechowywania.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć