⊗ppPmDOLT 381 of 447 menu

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, tüm şehirlerin bir listesini ekrana yazdırmak istiyoruz. Bunu basitçe yapmak mümkün olmayacaktır. Tüm kullanıcıları şehirleriyle birlikte almak, ardından alınan şehirlerden kopyaları çıkarmak ve ancak o zaman bu listeyi elde etmek zorunda kalacağız.

Şimdi, veritabanında 10 şehirden 10000 kullanıcı olduğunu hayal edin - 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 olacaktır.

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

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