Ứng dụng của tôi có hai loại nút: nút cha có thể giữ các nút con đệ quy. Hãy nghĩ về nó giống như hệ thống sau khi nhận xét trong SO, nhưng các nhận xét có thể đệ quy:Cách đúng để mô hình mối quan hệ đệ quy trong Django
parent_1
child_11
child_12
child_121
child_13
parent_2
child_21
child_211
child_2111
Quan trọng cần lưu ý rằng các nút cha có các thuộc tính và hành vi khác với các nút con.
Trừ đệ quy Tôi sẽ có các mô hình sau:
class Parent(models.Model):
# fields ...
class Child(models.Model):
parent = models.ForeignKey(Parent)
# other fields ...
Nhưng đệ quy phức tạp này. Cách chính xác (và có lẽ là hiệu quả nhất) của mô hình hóa mối quan hệ này ở Django là gì?
Daniel, bạn có thể giải thích tại sao tôi cần một mô-đun bên ngoài để triển khai mô hình khá đơn giản này không? –
+1 để chỉ tôi đến django-treebeard. Nested Sets implementation = bộ nhớ thời gian tuyệt vời cho tôi. – cethegeek
@Yuval, đó là vấn đề hiệu quả của việc lưu trữ dữ liệu phân cấp trong cơ sở dữ liệu. MPTT là một trong những cách tiếp cận phổ biến hơn được sử dụng hiện nay. Cả hai dự án mà Daniel đề cập có thêm thông tin về chủ đề cũng như các liên kết đến nhiều thông tin hơn nữa. Đây là một trong các bài viết được liên kết: http://articles.sitepoint.com/print/hierarchical-data-database – istruble