2012-03-19 9 views
7

Tôi đang triển khai cây MLM cho trang web sử dụng PHP (CodeIgniter) và MySQL. Tôi cần một cây nhị phân thực hiện trong cơ sở dữ liệu. Những điều sau đây cần được xem xét:Cây nhị phân Sử dụng PHP + MySQL

  1. Đối với mỗi nút, Số lượng tối thiểu số lượng trẻ em/nút trong nhánh trái và số con/nút phải được gọi là một cặp. Đối với mỗi cặp, một nút sẽ được lưu trữ trong cơ sở dữ liệu (các nút đại diện cho người dùng)

  2. Khi một nút mới được tạo ra (ở bất kỳ đâu), có thể tăng nhiều cặp nút. Vì vậy, bất cứ khi nào một nút được tạo, mỗi điểm nút sẽ được cập nhật (được tăng lên một khi có thể áp dụng).

  3. Tôi cũng cần phải xây dựng (hiển thị trong trang web) cây. Chỉ có 4-5 cấp độ được hiển thị.

  4. Cơ sở dữ liệu có thể có 100000 nút

Tôi đã tìm thấy chủ yếu là 4 mô hình cho implemmenting dữ liệu hieararchical trong MySQL, PHP

  1. danh sách kề
  2. Đường dẫn liệt kê
  3. Bộ lồng nhau
  4. Bảng đóng cửa

Vì vậy, tôi muốn tìm giải pháp sẽ giảm chi phí đầu vào và cập nhật thành công điểm cho tất cả các nút được áp dụng.

Tôi đã thử giải pháp Danh sách kề.

node (id, parentid, leftChildId,rightChildId,leftCount,rightCount) 
userStat(id,sdate,pairs,mlmIncome) 

mỗi lần một nút được chèn, tôi đi lên và giữ incrementing con đếm .Nếu cặp mới được thực hiện sau đó tôi tăng mà còn và tăng điểm .. Tôi đang làm những thủ tục lưu trữ.

Lý do tại sao tôi chọn giải pháp này trên Tập hợp lồng nhau là: cho mỗi nút được chèn, số lượng nút được cập nhật cho Tập hợp lồng nhau Luôn luôn nhiều hơn danh sách kề.

Mặc dù tỷ lệ xây dựng cây không nhiều hơn chèn. Và bộ lồng nhau tốt hơn trong việc xây dựng cây ..

Tôi đang đi đúng hướng chưa ?? Hãy giúp tôi !

Thnx trước!

+0

không thể hiểu tại sao điều này đã được downvoted, dường như câu hỏi hoàn toàn hợp lý! +1 – dmp

+0

thnx danp, bạn có thể giúp tôi giải pháp được không? –

+0

Tôi đang ở giữa triển khai phân cấp Bảng đóng cửa trong trình mã hóa, có hữu ích khi xem mã này không? – dmp

Trả lời

1

Blog này có thể giúp bạn với managing hierarchy data

Một trong đó âm thanh quen thuộc nhất cho câu hỏi của bạn có thể là Modified Preorder Tree Traversal

+0

Thnx Philip trả lời của bạn. Thực tế tôi đã đọc cả hai bài báo trước khi đặt câu hỏi này. Tôi không thể quyết định giải pháp whitch để làm theo ..... Nested Set dường như tốt hơn với tôi, mặc dù tôi quan tâm đến việc chèn nó lên trên. –