ノード間の子と親の関係を定義するテーブルがあります。
CREATE TABLE node ( ' pseudo code alert
id INTEGER PRIMARY KEY,
parentID INTEGER, ' should be a valid id.
)
parentID
常に有効な既存のノードを指している場合、これは当然ツリー構造を定義します。
その場合、ノードはルートノードでparentID
あるNULL
と見なすことができます。
どのように私は:
- 特定のノードの子孫であるすべてのノードを検索しますか?
- 特定の深さまでの特定のノードの下にあるすべてのノードを検索しますか?
これらのそれぞれを単一のSQL(必然的に再帰的であると思います)または2つの相互再帰クエリとして実行したいと思います。
これはODBCコンテキストで行っているため、ベンダー固有の機能に依存することはできません。
編集
- テーブルはまだ作成されていないため、列/テーブルを追加することはまったく問題ありません。
- ツリーは潜在的に更新され、頻繁に追加されます。補助的なデータ構造/テーブル/列は可能ですが、最新の状態に保つ必要があります。この種の質問のために手が届く魔法の本があれば、私は知りたいです。
どうもありがとう。