TAILIEUCHUNG - Duyệt cây đa cấp trên MS SQL Server

Tôi là lập trình viên thường làm việc trên hệ quản trị cơ sở dữ liệu MS SQL Server. Tình cờ tôi có dịp "đụng" vấn đề duyệt cây đa cấp khá hay nên muốn chia sẻ kinh nghiệm qua bài viết này. | Duyệt cây đa cấp trên MS SQL Server Nguồn Tôi là lập trình viên thường làm việc trên hệ quản trị cơ sở dữ liệu MS SQL Server. Tình cờ tôi có dịp đụng vấn đề duyệt cây đa cấp khá hay nên muốn chia sẻ kinh nghiệm qua bài viết này. Chương trình ở đây viết bằng script Transact-SQL đương nhiên các bạn cũng có thể chuyển sang bất kỳ ngôn ngữ lập trình nào tùy thích. Qui tắc duyệt cây đề cập ở đây là theo chiều sâu duyệt từ trái sang phải thứ tự duyệt được thể hiện bằng các chữ số bên trong các node ở hình 1. Bảng Tree lưu trữ thông tin của cây đa cấp có cấu trúc như sau Column Name Data Type Size Allow Null Description NodeID Int No Khóa chính của bảng Tree NodeName varchar 20 No Tên node ParentID Int Yes Mã của node cha gần nhất WoodenLeg varchar 100 Yes Cột giả hỗ trợ khi sắp xếp dữ liệu Scrip tạo bảng Tree như sau Create Table Tree NodeID int Primary Key NodeName varchar 20 Not Null ParentID int Null WoodenLeg varchar 100 Null Dữ liệu trong bảng Tree mô tả cây đa cấp ở hình 1 được thể hiện ở hình 2. Qui tắc tạo dữ liệu như sau NodeName NodeName ParentID WoodenLeg 1 Root Node Null 1 2 Node 1 1 12 3 Node 2 1 13 4 Node 3 1 14 5 Node 4 1 15 6 Node A 2 126 7 Node B 2 127 8 Node C 3 138 9 Node D 3 139 10 Node E 3 1310 11 Node F 5 1511 12 Node G 5 1512 13 Node X 11 151113 14 Node Y 11 151114 15 Node Z 11 151115 Hình 2 Dữ liệu mô tả cấu trúc cây đa cấp Đừng quan tâm đến giá trị column WoodenLeg tôi sẽ giải thích ở phần sau NodelD của node cha sẽ nhỏ hơn NodelD của node con. Đối với các node cùng cấp NodelD của node trái sẽ nhỏ hơn NodelD của node phải. Đọc đến đây các bạn có thể thắc mắc nếu NodelD của một cây có sẵn có giá trị không thoả điều kiện trên thì chúng ta có sắp xếp được hay không. Câu trả lời là hoàn toàn có thể vì khi đó chúng ta có thể tạo thêm một column mới với các giá trị thoả điều kiện. Vì muốn giữ tính đơn giản cho bài viết nên cho phép tôi không nêu ra cách tính cho trường hợp này. Nếu có bất kỳ thắc mắc gì các bạn có thể liên hệ trực tiếp

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.