Menghubungkan Tabel dalam Basis Data dengan Python
Misalkan kita memiliki tabel dengan nama-nama pengguna dan kota tempat mereka tinggal:
| 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:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
Tabel dengan pengguna:
| 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.