⊗pyPmDOFR 126 of 129 menu

Relasi Data Hierarkis dalam Python

Misalkan kita dihadapkan pada tugas untuk menyimpan data ayah dan anak laki-laki. Asumsikan setiap ayah hanya dapat memiliki satu anak laki-laki, dan anak laki-laki tersebut pada gilirannya juga dapat memiliki satu anak laki-laki.

Kita perlu memikirkan cara menyimpan datanya. Ide pertama yang mungkin muncul adalah membuat dua tabel: parents untuk ayah dan sons untuk anak laki-laki. Kemudian menghubungkan tabel-tabel ini dengan bidang tertentu: son_id atau parent_id.

Namun, ide ini tidak terlalu baik - karena orang yang sama bisa sekaligus menjadi ayah dan anak laki-laki - dan kita harus menyimpannya di kedua tabel, yang mana hal ini tidak nyaman, memakan lebih banyak ruang, dan mudah menimbulkan kesalahan.

Opsi yang lebih baik adalah menghubungkan tabel tersebut dengan dirinya sendiri: mari buat tabel users, di dalamnya kita akan menyimpan semua pengguna dan untuk setiap pengguna kita buat bidang son_id, yang akan menyimpan id anak laki-laki dari tabel yang sama:

users
id name son_id
1 user1 2
2 user2 3
3 user3 null

Query

Sekarang mari kita tulis query yang akan mengambil pengguna beserta anak laki-lakinya.

Pertama-tama, mari ambil pengguna saja:

SELECT * FROM users

Sekarang mari gabungkan (JOIN) dengan anak laki-laki mereka. Kita akan menggabungkan tabel dengan dirinya sendiri, oleh karena itu kita perlu melakukan pengubahan nama tabel:

LEFT JOIN users as sons

Sekarang kita dapat menentukan hubungan antara tabel utama dan tabel yang telah diubah namanya:

LEFT JOIN users as sons ON sons.id=users.son_id

Sekarang mari tentukan field-fieldnya:

SELECT users.name as user_name, sons.name as son_name

Mari satukan semuanya dan kita dapatkan query berikut:

SELECT users.name as user_name, sons.name as son_name FROM users LEFT JOIN users as sons ON sons.id=users.son_id

Tugas Praktis

Misalkan kita memiliki kategori. Setiap kategori dapat dimiliki oleh kategori induk, kategori induk tersebut pada gilirannya dimiliki oleh induknya sendiri, dan seterusnya. Jelaskan struktur penyimpanannya.

Tuliskan query yang akan mengambil sebuah kategori beserta kategori induknya.

Tuliskan query yang akan mengambil sebuah kategori beserta induk dan kakek/nenek (grandparent)-nya.

Tuliskan query yang akan mengambil sebuah kategori beserta induk, kakek/nenek (grandparent), dan orang tua dari kakek/nenek (great-grandparent)-nya.

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