1

mysql には、隣接リスト モデルを使用して表現されるツリーがあります。

MYTREE
   id
   parent_id
   title

不思議なんだけど:

ノードのIDを指定して、そのノードの下にあるツリー全体を選択し、深さ情報を完備する方法はありますか? ツリーは任意の深さなので、レベルがいくつあるかはわかりません。しかし、結果セットは次のようになります。

ID      TITLE     DEPTH
4       title1    1
8       title2    2
16      title8    3
9       title3    2
15      title4    3

ネストされたセットモデルを使用してこれを行うことができることを知っています。しかし、ネストされたセットには理想的ではないことがあり、切り替える必要がないことを望んでいます。

アドバイスありがとう!

4

2 に答える 2

0

簡単な答え:いいえ。

親ポインタで表されるツリーをトラバースする唯一の方法は、親IDのセットを次から次へと追跡することです。これは、テーブル全体で何度も結合するだけで深さを制限できる場合に可能ですが、深さが無制限の場合は、通常、アプリケーション側のループが最適です。

于 2010-06-10T19:14:10.967 に答える
0

編集:タイトルの任意の深い句に気づきませんでした:

行を再帰するストアドプロシージャを作成できます。

しかし、入れ子集合について理想的ではないものは何ですか(少なくとも、挿入前のトリガーまたはストアドプロシージャでは対処できませんでした)。

于 2010-06-10T19:16:12.040 に答える