While I've seen examples for nested sets, tôi chưa thấy nhiều khoảng thời gian lồng nhau, mặc dù trong lý thuyết, không khó để chuyển đổi từ người này sang người khác. Thay vì thực hiện quá trình truyền tải trước để gắn nhãn các nút, thực hiện đệ quy lần đầu tiên. Bí quyết là tìm ra cách hiệu quả nhất để ghi nhãn n con của một nút. Vì nút giữa a/b và c/d là (a + c)/(b + d), một chèn chèn máy lạnh (ví dụ, chèn các con từ trái sang phải), chạy nguy cơ tạo ra cùng một mức tăng theo cấp số nhân ví dụ: trong các giá trị chỉ mục, sử dụng toàn bộ materialized path. Nó không phải là khó khăn để chống lại hiệu ứng này - tạo ra các chỉ số mới một tại một thời điểm, chèn từng tại vị trí tạo ra mẫu số kết quả thấp nhất.
Theo như suy thoái hiệu suất hoạt động, phụ thuộc nhiều vào các hoạt động bạn định làm. Vẫn còn một số thao tác đòi hỏi phải gắn nhãn lại toàn bộ cây - tập hợp lồng nhau hoặc các phương thức khoảng thời gian lồng nhau đều hoạt động tốt nhất cho các cấu trúc hiếm khi thay đổi. Nếu bạn đang thực hiện rất nhiều thay đổi cấu trúc cho cấu trúc phân cấp, cấu trúc bảng cha-con 'chuẩn' có thể dễ dàng hơn để làm việc. hãy nhớ rằng một số thao tác (chẳng hạn như số con cháu) dễ dàng hơn nhiều với việc ghi nhãn số nguyên của các tập lồng nhau so với các phương thức khoảng thời gian.
Hãy xem câu hỏi của tôi: http://stackoverflow.com/questions/1049748/improving-nested-sets-modified-preorder-tree-traversal Vui lòng nhận xét nếu bạn muốn. Tôi đang nghiên cứu không gian này ngay bây giờ. –
Đó là một ý tưởng vô cùng khéo léo, tôi sẽ cho nó điều đó. Nhưng nó thực sự có khả năng nhanh hơn con trỏ mẹ trong cơ sở dữ liệu hỗ trợ truy vấn đệ quy, như các bản phát hành gần đây của tất cả các cơ sở dữ liệu nghiêm túc (tức là mọi thứ nhưng MySQL!) Làm gì? –