-1

学習管理システム (オンライン スクールと呼びます) のコース構造を考えてみましょう。

次のようなものがあります。

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)おそらく、 Test をANDの両方に向けたいと思います。それは木の理論を台無しにしませんか?まあ、それらはツリーの一部ではないと思います..それらはいくつかのノードを指しているだけです。どう思いますか ?Sub-Topic 1-1 in Course 1 Sub-Topic 2-2 in course 2

事前にご回答いただきありがとうございます..

4

1 に答える 1

1

申し訳ありませんがポイント2にしか答えられません。

理論に関して、あなたが説明しているのはツリーではなく、もはやツリーではないDAG(有向非巡回グラフ)です。

しかし、django-mpttの上に構築された多くのCMSは、この問題をそのように解決します(django-mpttが単一のツリーだけでなく、フォレストを処理できるようになっているおかげです)。

  • 彼らは共有ノード(あなたの場合はテスト)を別々のツリーに配置します。
  • 共有ノードがツリー内にある場合、あなたの場合はサブトピック1-1と2-2の下に、ある種の仮想ノードが追加されます。この仮想ノードの唯一の役割は、別のノードを指すことです。場合。

これは、ファイルシステムのシンボリックリンクに非常によく似ています。

その後、1つのツリーですべてを実行できます。

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

または、いくつかの木を使用します。

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
于 2012-07-07T05:51:24.237 に答える