Tôi giả định rằng từ các thẻ và tiêu đề của bạn rằng bạn đang tìm kiếm một giải pháp hoạt động với MySQL .
Có, bạn đúng rằng trừ khi bạn biết trước số lượng phần tử thì giá trị của right
cần được tính toán động. Có hai cách tiếp cận bạn có thể sử dụng:
- Bạn có thể bắt đầu với giá trị nhỏ nhất phù hợp (trong trường hợp này là 2) và tăng giá trị đó sau đó nếu cần.
- Bạn chỉ có thể đưa ra một dự đoán như 10000000 và hy vọng là đủ, nhưng bạn cần chuẩn bị cho khả năng là chưa đủ và có thể cần phải điều chỉnh lại sau.
Trong cả hai trường hợp, bạn cần triển khai left
và right
Các giá trị cho nhiều hàng có thể cần được điều chỉnh khi chèn các hàng mới, nhưng trong trường hợp thứ hai, bạn thực sự chỉ cần thực hiện cập nhật nếu suy đoán của bạn sai. Vì vậy, giải pháp thứ hai phức tạp hơn nhưng có thể mang lại hiệu suất tốt hơn.
Lưu ý rằng trong số bốn cách phổ biến để lưu trữ dữ liệu thứ bậc, phương pháp tiếp cận tập hợp lồng nhau là khó nhất để thực hiện chèn và cập nhật. Xem trang trình bày 69 về Mô hình cho Dữ liệu Heirarchical của Bill Karwin .