5

これまでのところ、ツリー構造をデータベースに格納するためのモデルとして、隣接リスト、ネストされたセット、およびネストされた間隔に遭遇しました。私はこれらを十分に知っており、木をある木から別の木へと移動させました。

他の人気モデルは?彼らの特徴は何ですか?このトピックに関する優れたリソース (書籍、Web など) は何ですか?

私は db ストレージを探しているだけでなく、ツリー全般に関する知識を広げたいと思っています。たとえば、入れ子になったセット/間隔がリレーショナル データベース ストレージに特に適していることを理解していますが、実際には他のコンテキストでは悪い選択でしょうか?

4

2 に答える 2

2

バリエーションは、直接的な階層表現 (つまり、ノード内の親リンク) を使用する場所ですが、パス値も格納します。

すなわち。以下で構成されるディレクトリ ツリーの場合:

C:\
   Temp
   Windows
       System32

次のノードがあります

Key     Name     Parent     Path
1       C:                  *1*
2       Temp       1        *1*2*
3       Windows    1        *1*3*
4       System32   3        *1*3*4*

パスにはインデックスが付けられているため、範囲を操作することなく、ノードとそのすべての子を取得するクエリをすばやく実行できます。

すなわち。C:\Temp とそのすべての子を検索するには:

WHERE Path LIKE '*1*2*%'

この表現は、 IDをこのような文字列に格納しても問題ないと考えることができる唯一の場所です。

于 2008-08-26T12:18:55.787 に答える
1

このための重要なリソースは、SQL for Smartiesの第28〜30章です。

(私はこの本をとてもお勧めしました。私はCelkoが今までに私に使用料を借りていると思います!)

于 2008-08-26T14:35:13.760 に答える