Saya berasumsi dari tag dan judul Anda bahwa Anda sedang mencari solusi yang bekerja dengan MySQL .
Ya, Anda benar bahwa kecuali Anda mengetahui jumlah elemen terlebih dahulu, nilai untuk right
perlu dihitung secara dinamis. Ada dua pendekatan yang dapat Anda gunakan:
- Anda dapat memulai dengan nilai terkecil yang berhasil (2 dalam kasus ini) dan meningkatkannya nanti sesuai kebutuhan.
- Anda bisa saja menebak seperti 10000000 dan berharap itu cukup, tetapi Anda harus siap dengan kemungkinan bahwa itu tidak cukup dan mungkin perlu menyesuaikan lagi nanti.
Dalam kedua kasus, Anda perlu menerapkan bahwa left
dan right
nilai untuk beberapa baris mungkin perlu disesuaikan saat memasukkan baris baru, tetapi dalam kasus kedua Anda hanya perlu melakukan pembaruan jika tebakan Anda salah. Jadi solusi kedua lebih kompleks, tetapi dapat memberikan kinerja yang lebih baik.
Perhatikan bahwa dari empat cara umum untuk menyimpan data hierarkis, pendekatan kumpulan bersarang adalah yang paling sulit untuk melakukan penyisipan dan pembaruan. Lihat slide 69 dari Model untuk Data Heirarchical dari Bill Karwin .