⊗pyPmDOLT 122 of 129 menu

Python-da Verilenler Bazasında Cedvellerin Birlesdirilmesi

Tutaq ki, bizim istifadeçi adları ve onların yaşadığı şeherlerle bir cedvelimiz var:

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

Bu cedvelin çatışmazlığı ondadır ki, eyni şeher müxtelif istifadeçiler üçün bir neçe defe tekrarlanır. Bu, bir sıra problemlere sebeb olur.

Birincisi, daimi tekrarlar verilenler bazasının daha çox yer tutmasına getirib çıxarır.

Ikincisi, şeherlerle emeliyyatları yerine yetirmek olduqca narahatdır. Meselen, ekranda bütün şeherlerin siyahısını çıxartmaq istəyirik. Bunu asanlıqla etmek olmayacaq. Biz bütün istifadeçileri onların şeherleri ile birlikde almalı, sonra alınan şeherlerden dublikatları silmeli ve ancag o zaman bu siyahını alacığıq.

Indi təsəvvür edin ki, bazada 10000 istifadeçi var və onlar 10 şeherdendir - bu 10 şeher üçün biz böyük sayda setirden ibaret olan bütün cedveli çıxarmalı olacığıq - bu, çox yavaş işleyen ve mənasız resurs sərfi demekdir.

Problemin həlli

Bizim cedvelimizi iki yerə bölmək lazımdır: birinde şeherler saxlanılır, digərinde isə istifadeçiler. Eyni zamanda, istifadeçiler cedvelinde city_id adlı bir sütun olacaq, hansı ki, istifadeçinin şeherine istinad edəcək.

Beləliklə, gəlin iki cedvel yaradaq. Şeherler cedveli:

cities
id name
1 city1
2 city2
3 city3

Istifadeçiler cedveli:

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

Praktiki tapşırıqlar

Tutaq ki, siz malları (ad, qiymet, miqdar) ve bu malların kateqoriyalarını saxlamalısınız. Saxlama quruluşunu təsvir edin.

Tutaq ki, siz çayları ve bu çayların axdığı denizleri saxlamalısınız. Saxlama quruluşunu təsvir edin.

Tutaq ki, siz şeherleri ve onların yerləşdiyi ölkeleri saxlamalısınız. Saxlama quruluşunu təsvir edin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et