⊗pyPmDOLT 122 of 129 menu

Python'da Veritabanlarında Tabloların Bağlanması

Diyelim ki kullanıcı adlarını ve yaşadıkları şehirleri içeren bir tablomuz var:

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

Bu tablonun dezavantajı, aynı şehrin farklı kullanıcılar için birkaç kez tekrarlanmasıdır. Bu, bazı sorunlara yol açar.

İlk olarak, sürekli tekrarlama, veritabanının çok daha fazla yer kaplamasına neden olur.

İkinci olarak, şehirlerle işlem yapmak oldukça elverişsizdir. Örneğin, ekrana tüm şehirlerin bir listesini yazdırmak istiyoruz. Bunu bu şekilde yapmak kolay olmayacaktır. Tüm kullanıcıları şehirleriyle birlikte almak, ardından elde edilen şehirlerden kopyaları silmek ve ancak o zaman bu listeyi elde etmek zorunda kalacağız.

Şimdi hayal edelim ki veritabanında 10 şehirden 10000 kullanıcı var - bu 10 şehir için, çok sayıda satırdan oluşan tüm tabloyu çıkarmak zorunda kalacağız - bu, anlamsız kaynak israfıyla çok yavaş bir işlem olacak.

Sorunun Çözümü

Tablomuzu ikiye bölmemiz gerekiyor: birinde şehirler, diğerinde ise kullanıcılar saklanacak. Aynı zamanda, kullanıcılar tablosunda, kullanıcının şehrine referans verecek olan city_id sütunu olacak.

Peki, iki tablo yapalım. Şehirler tablosu:

cities
id name
1 city1
2 city2
3 city3

Kullanıcılar tablosu:

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

Pratik Görevler

Diyelim ki ürünleri (ad, fiyat, miktar) ve bu ürünlerin kategorilerini saklamanız gerekiyor. Saklama yapısını açıklayın.

Diyelim ki nehirleri ve bu nehirlerin döküldüğü denizleri saklamanız gerekiyor. Saklama yapısını açıklayın.

Diyelim ki şehirleri ve içinde bulundukları ülkeleri saklamanız gerekiyor. Saklama yapısını açıklayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet