⊗pyPmDOLT 122 of 129 menu

Menghubungkan Tabel dalam Basis Data dengan Python

Misalkan kita memiliki tabel dengan nama-nama pengguna dan kota tempat mereka tinggal:

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

Kelemahan tabel ini adalah kota yang sama diulang beberapa kali untuk pengguna yang berbeda. Hal ini menyebabkan beberapa masalah.

Pertama, pengulangan terus-menerus menyebabkan basis data memakan tempat yang jauh lebih banyak.

Kedua, cukup merepotkan untuk melakukan operasi dengan kota. Misalnya, kita ingin menampilkan daftar semua kota. Tidak mudah untuk melakukannya. Kita harus mengambil semua pengguna beserta kota mereka, kemudian menghapus duplikat dari kota yang didapat dan barulah kita mendapatkan daftar ini.

Sekarang bayangkan, dalam basis data terdapat 10000 pengguna dari 10 kota - untuk 10 kota ini kita harus mengambil seluruh tabel yang terdiri dari sejumlah besar baris - akan menjadi operasi yang sangat lambat dengan pemborosan sumber daya yang tidak berarti.

Solusi Masalah

Kita perlu memecah tabel kita menjadi dua: di satu tabel akan disimpan kota, dan di tabel kedua - pengguna. Pada tabel pengguna akan ada kolom city_id, yang akan merujuk pada kota pengguna.

Jadi, mari kita buat dua tabel. Tabel dengan kota:

cities
id name
1 city1
2 city2
3 city3

Tabel dengan pengguna:

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

Tugas Praktis

Misalkan Anda perlu menyimpan produk (nama, harga, jumlah) dan kategori produk ini. Jelaskan struktur penyimpanannya.

Misalkan Anda perlu menyimpan sungai dan laut, tempat sungai-sungai ini bermuara. Jelaskan struktur penyimpanannya.

Misalkan Anda perlu menyimpan kota dan negara, tempat kota-kota tersebut berada. Jelaskan struktur penyimpanannya.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak