Masalah:
Melintasi struktur hierarki, seperti jadual bil bahan, memerlukan kaedah untuk mendapatkan semula baris secara rekursif untuk mencipta perwakilan pokok bersarang. Walau bagaimanapun, pertanyaan SQL tradisional terhad dalam keupayaannya untuk mengendalikan rekursi.
Jawapan:
Pada tahun 2011, satu soalan telah disiarkan pada DBA StackExchange mencari penyelesaian MySQL untuk pepohon lintasan. Respons memberikan satu set prosedur tersimpan:
Pelaksanaan:
Panggil GetFamilyTree(item_id) untuk mendapatkan semula salasilah keluarga untuk item tertentu. Prosedur yang disimpan ini akan mencari induk dan semua nenek moyang secara rekursif, mengembalikan hasilnya sebagai struktur pokok berlapis.
Contoh:
CREATE PROCEDURE GetFamilyTree( IN item_id INT ) BEGIN SELECT ... # Perform recursive tree traversal END;
Penggunaan:
CALL GetFamilyTree(1);
Ini akan mendapatkan semula salasilah keluarga untuk item 1 dan membentangkannya dalam format bersarang.
Faedah:
Atas ialah kandungan terperinci Bagaimana untuk Membina Struktur Pokok secara Rekursif daripada Data Hierarki MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!