⊗ppPmDOFR 385 of 447 menu

Hubungan Data Terkait dalam PHP

Misalkan kita dihadapkan pada tugas untuk menyimpan data ayah dan anak laki-laki. Misalkan 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 bagaimana kita akan menyimpan datanya. Ide pertama yang mungkin terlintas di pikiran - 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 menyebabkan kesalahan.

Varian yang lebih baik - adalah menghubungkan tabel itu sendiri dengan dirinya sendiri: mari buat tabel users, di dalamnya kita akan menyimpan semua pengguna dan untuk setiap pengguna buatkan 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

Kueri

Sekarang mari kita tulis kueri 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, jadi kita perlu melakukan pengubahan namanya:

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 bidang-bidangnya:

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

Mari satukan semuanya dan kita dapatkan kueri 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 termasuk dalam kategori induk, kategori induk tersebut pada gilirannya termasuk dalam kategori induknya sendiri dan seterusnya. Jelaskan struktur penyimpanannya.

Tuliskan kueri yang akan mengambil sebuah kategori beserta kategori induknya.

Tuliskan kueri yang akan mengambil sebuah kategori beserta induk dan kakeknya (induk dari induk).

Tuliskan kueri yang akan mengambil sebuah kategori beserta induk, kakek, dan buyutnya (induk dari kakek).

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