Rumah >pangkalan data >tutorial mysql >Bagaimanakah Prosedur Tersimpan Boleh Melintasi Pokok BOM Hierarki dengan Cekap dalam MySQL?
Masalah:
Andaikan anda mempunyai jadual bil bahan (BOM) dengan item dan ID induk mereka. Matlamatnya adalah untuk mendapatkan semula perwakilan hierarki item dalam bentuk struktur pokok. Menggunakan pertanyaan satu peringkat biasa atau fungsi rekursif mungkin tidak cekap.
Penyelesaian:
Bahasa SQL dalam MySQL tidak menyokong pertanyaan rekursif secara asli. Untuk mengatasi had ini, seseorang boleh membuat Prosedur Tersuai (SP) untuk mencapai fungsi lintasan pokok.
SP Cadangan:
SP berikut boleh digunakan untuk melintasi BOM pokok:
Penggunaan:
Untuk menggunakan SP, ikuti ini langkah:
Contoh:
Sebagai contoh, jika anda mempunyai jadual BOM dengan data berikut:
+----+------+ | item | parent | +----+------+ | 1 | 0 | | 2 | 1 | | 3 | 1 | | 4 | 3 | | 76 | 3 | +----+------+
Memanggil GetFamilyTree (1) akan mengembalikan perwakilan hierarki berikut:
[ { "item": 1, "children": [ { "item": 2, "children": [] }, { "item": 3, "children": [ { "item": 4, "children": [] }, { "item": 76, "children": [] } ] } ] } ]
Perwakilan ini menyediakan semua dahan kanak-kanak di dalam pokok, membolehkan mendapatkan semula perhubungan item dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Prosedur Tersimpan Boleh Melintasi Pokok BOM Hierarki dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!