Pautan Jadual dalam Pangkalan Data di Python
Katakan kita mempunyai jadual dengan nama pengguna dan bandar di mana mereka tinggal:
| id | name | city |
|---|---|---|
| 1 | user1 | city1 |
| 2 | user2 | city1 |
| 3 | user3 | city2 |
| 4 | user4 | city1 |
| 5 | user5 | city3 |
| 6 | user6 | city2 |
Kelemahan jadual ini ialah bandar yang sama diulang beberapa kali untuk pengguna yang berbeza. Ini membawa kepada beberapa masalah.
Pertama, pengulangan berterusan membawa kepada fakta bahawa pangkalan data mula menduduki jauh lebih banyak ruang.
Kedua, agak menyusahkan untuk melaksanakan operasi dengan bandar. Sebagai contoh, kami mahu memaparkan senarai semua bandar. Ia tidak boleh dilakukan dengan mudah. Kami perlu mendapatkan semua pengguna bersama-sama dengan mereka bandar, kemudian buang pendua daripada yang diperoleh bandar dan hanya kemudian kita akan mendapat ini senarai.
Sekarang bayangkan terdapat 10000
pengguna dalam pangkalan data dari 10
bandar - untuk ini
10 bandar kami perlu mengambil keseluruhan
jadual dari sejumlah besar baris -
ia akan menjadi operasi yang sangat perlahan dengan
pembaziran sumber yang tidak bermakna.
Penyelesaian Masalah
Kita perlu membahagikan jadual kami kepada dua: dalam satu
bandar akan disimpan, dan dalam yang kedua - pengguna.
Pada masa yang sama, dalam jadual pengguna akan terdapat lajur
city_id, yang akan merujuk
kepada bandar pengguna.
Jadi, mari buat dua jadual. Jadual dengan bandar:
| id | name |
|---|---|
| 1 | city1 |
| 2 | city2 |
| 3 | city3 |
Jadual 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 Praktikal
Katakan anda perlu menyimpan produk (nama, harga, kuantiti) dan kategori produk ini. Terangkan struktur penyimpanan.
Katakan anda perlu menyimpan sungai dan laut, yang mengalir ke sungai-sungai ini. Terangkan struktur penyimpanan.
Katakan anda perlu menyimpan bandar dan negara, di mana mereka berada. Terangkan struktur penyimpanan.