你的主意。。。是不是;django mptt“;适合这种课程结构体系吗? 我们考虑一个学习管理系统的课程结构(称之为在线学校)。

你的主意。。。是不是;django mptt“;适合这种课程结构体系吗? 我们考虑一个学习管理系统的课程结构(称之为在线学校)。,django,django-models,tree,hierarchical-data,django-mptt,Django,Django Models,Tree,Hierarchical Data,Django Mptt,我们有这样的东西: Course 1 Topic 1 Sub-Topic 1-1 sub-Topic 1-2 Topic 2 Sub-Topic 2-1 Sub-Topic 2-2 Course 2 Topic 1 Sub-Topic 1-1 sub-Topic 1-2 Topic 2 Sub-Topic 2-1 Sub-Topic 2

我们有这样的东西:

Course 1
    Topic 1
        Sub-Topic 1-1
        sub-Topic 1-2
    Topic 2
        Sub-Topic 2-1
        Sub-Topic 2-2

Course 2
    Topic 1
        Sub-Topic 1-1
        sub-Topic 1-2
    Topic 2
        Sub-Topic 2-1
        Sub-Topic 2-2
    ... 
例如,我们有一个课程“数学1”主题“线性代数”子主题“线性方程组”

重要的一点是,我们可以为每个节点分配一些内容和一些测试

现在django mptt出炉了:

1) 我需要在导航栏中填充课程树。我想这应该很简单,也很琐碎。你的想法是什么

2) 也许我想对课程1中的
子主题1-1和课程2中的
子主题2-2进行测试。它不是破坏了树木理论吗?嗯,我相信它们不是树的一部分。。它们只是指向一些节点。你觉得怎么样


感谢您事先的回答。

只能回答第2点对不起

关于这个理论,你描述的不是树,而是一个DAG(有向无环图),它不再是树了

然而,许多构建在django mptt之上的CMS以这种方式解决了这个问题(多亏django mptt能够处理森林而不仅仅是一棵树):

  • 他们会将共享节点(您的测试)放在不同的树中
  • 如果共享节点位于树中,在您案例的子主题1-1和2-2下,它们添加了某种虚拟节点,唯一的角色是指向另一个节点,即您案例中包含测试的节点
这非常类似于文件系统上的符号链接

然后,您可以在一棵树中完成所有操作:

Fall semester 2012
  Course 1
    Topic 1
      sub-topic 1-1
      sub-topic 1-2
    Topic 2
      sub-topic 2-1
      sub-topic 2-2
    Test -------------+
  Course 2            |
    Topic 1           |
      sub-topic 1-1   |
      sub-topic 1-2   |
    Topic 2           |
      sub-topic 2-1   |
      sub-topic 2-2   |
    Test  ------------+
  Tests               |
    Test 1 <----------'
      Part 1
      Part 2
2012年秋季学期
课程1
专题1
分专题1-1
分专题1-2
专题2
分专题2-1
分专题2-2
试验-------------+
课程2|
专题1|
分专题1-1|
分专题1-2|
专题2|
分专题2-1|
分专题2-2|
试验------------+
测验|

测试1很好。您处理的是分层数据,因此django mptt是适用的。去做吧。如果你有问题,那么你可以来这里问问题。谢谢克里斯。。像往常一样:)非常感谢。。哦这比我以前想的要复杂得多。因此,如果每个节点都有两个不同的测试(选择题、普通考试)和“内容(课程)”,我应该为每个节点形成额外的树?更新:niceee图表。。。你的建议太棒了。。。大如:)
Course 1
  Topic 1
    sub-topic 1-1
    sub-topic 1-2
  Topic 2
    sub-topic 2-1
    sub-topic 2-2
  Test -------------+
                    |
Course 2            |
  Topic 1           |
    sub-topic 1-1   |
    sub-topic 1-2   |
  Topic 2           |
    sub-topic 2-1   |
    sub-topic 2-2   |
  Test  ------------+
                    |
Test 1 <------------'
  Part 1
  Part 2