問題タブ [transitive-closure-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
53 参照

android - Room データベースで再帰 CTE を使用してクロージャ テーブルを作成する方法

以下のクラスは、API 呼び出しから返された構造体から、primaryKey、parentId、および depth を除いたものです。私の目標は、再帰 CTE を使用して Room DB にクロージャ テーブルを作成することです。

返された POJO がオブザーバブルから発行されたときに、ツリーをトラバースしようとしました。問題は、categoryId==parentId である推移閉包の一部で深さが正しくないことです。

だから...再帰CTEを使用してRoom DBでクロージャテーブルを作成するにはどうすればよいですか?

0 投票する
1 に答える
111 参照

c# - クロージャ テーブルからツリー階層を再構築する方法 (Entity Framework Core 5)

dto のツリー階層を構築するのに苦労しています。ツリー階層は、深さのあるクロージャ テーブルに取り込まれます。クロージャー テーブルは、データベース内のトリガーを使用して構築され、EF の Teams テーブルにリレーショナルにマップされません。

これは私の基本的なクラス構造です:

Closure テーブルは次のように構成されています。

EF の定義は次のとおりです。

これに対してクエリを実行するときに私ができる最善のことは、最初のレベルでサブチームを埋めることです。私は AutoMapper を使用していますが、AutoMapper ソリューションには慣れていません。

ユーザーに関連するチームのリストを取得するための私のクエリ (既に teamMemberships リストにキャプチャされており、_mapper は AutoMapper インジェクションで、_context はデータベース コンテキスト インジェクションです) は次のようになります。

完全なツリーが Dto で確立されるように、どうにかしてサブチームを再帰的に引き出す必要があります。これを行うことができる閉鎖テーブルを参照するクエリがあるかもしれないと考えています。json として送信された場合の dto は、次のようになります。

どんな洞察も大歓迎です。

0 投票する
0 に答える
17 参照

tree - 兄弟の位置を保存するには、どのツリー戦略を選択しますか?

ノード内で、子の位置が重要な場合、これらの位置で順序付けされたツリー全体を格納およびフェッチするために採用するツリー パターン (隣接リスト、マテリアライズド パス、ネストされたセット、クロージャー テーブルなど) はどれですか? 使いやすさと性能の面で優れているのはどれですか?

これらの階層データが与えられた場合:

Node 1.1指定されたノードの位置を切り替えてNode 1.2、新しい結果を保存できるようにしたいと考えています。次に、フェッチされた更新されたツリーは次のようになります。