MySQL データベースがあり、以下のテーブル構造にユーザー レコードを保存しています。
User_mst
-------------------
id
user_name
parent_id
left_id
right_id
position (keyword "left", "right" as string)
node_level
各ノード (ユーザー) の下に最大 2 つの子ノードがあることを意味するように、バイナリ ツリー構造でユーザー レコードを格納しています。
この構造から、次の関数を作成したい
入力:
1.user_id
2.level
3.position
出力は次のようになります。
user_id
given on givenlevel
およびgiven の下にあるノードの数position
。
たとえば、関数が以下のような場合
get_nodes(3, 4, 'left');
次に返されるはずです:レベル4のユーザー ID 3の下にX個のノードがあります
提案が欲しいのですが、再帰的に処理する関数を構築する必要があると思います。
この関数の作成を手伝ってください。C、PHPなどのプログラミング言語を使用してください。ここでロジックを探しているだけです。
Create Table の SQL といくつかのサンプル Insert ステートメントを次に示します。
http://paste.ubuntu.com/1218345/
前もって感謝します