Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membina Struktur Pokok secara Rekursif daripada Data Hierarki MySQL?

Bagaimana untuk Membina Struktur Pokok secara Rekursif daripada Data Hierarki MySQL?

Barbara Streisand
Lepaskan: 2024-12-08 15:57:09
asal
194 orang telah melayarinya

How to Recursively Build a Tree Structure from MySQL Hierarchical Data?

Cara Mengambil Secara Rekursif MySQL Rows untuk Membina Pokok

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:

  • GetParentIDByID: Dapatkan semula ID induk ID yang diberikan.
  • GetAncestry: Mengembalikan semua nenek moyang dalam hierarki.
  • GetFamilyTree: Menjana seluruh salasilah keluarga untuk item tertentu.

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;
Salin selepas log masuk

Penggunaan:

CALL GetFamilyTree(1);
Salin selepas log masuk

Ini akan mendapatkan semula salasilah keluarga untuk item 1 dan membentangkannya dalam format bersarang.

Faedah:

  • Mengendalikan pengambilan data hierarki dengan cekap tanpa memerlukan pemprosesan kelompok yang tidak cekap.
  • Menyediakan yang boleh disesuaikan cara untuk melintasi pokok dengan menyatakan permulaan nod.
  • Membolehkan penjanaan struktur pokok yang kompleks dan dinamik berdasarkan perhubungan pangkalan data.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan