問題タブ [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.
android - Room データベースで再帰 CTE を使用してクロージャ テーブルを作成する方法
以下のクラスは、API 呼び出しから返された構造体から、primaryKey、parentId、および depth を除いたものです。私の目標は、再帰 CTE を使用して Room DB にクロージャ テーブルを作成することです。
返された POJO がオブザーバブルから発行されたときに、ツリーをトラバースしようとしました。問題は、categoryId==parentId である推移閉包の一部で深さが正しくないことです。
だから...再帰CTEを使用してRoom DBでクロージャテーブルを作成するにはどうすればよいですか?
c# - クロージャ テーブルからツリー階層を再構築する方法 (Entity Framework Core 5)
dto のツリー階層を構築するのに苦労しています。ツリー階層は、深さのあるクロージャ テーブルに取り込まれます。クロージャー テーブルは、データベース内のトリガーを使用して構築され、EF の Teams テーブルにリレーショナルにマップされません。
これは私の基本的なクラス構造です:
Closure テーブルは次のように構成されています。
EF の定義は次のとおりです。
これに対してクエリを実行するときに私ができる最善のことは、最初のレベルでサブチームを埋めることです。私は AutoMapper を使用していますが、AutoMapper ソリューションには慣れていません。
ユーザーに関連するチームのリストを取得するための私のクエリ (既に teamMemberships リストにキャプチャされており、_mapper は AutoMapper インジェクションで、_context はデータベース コンテキスト インジェクションです) は次のようになります。
完全なツリーが Dto で確立されるように、どうにかしてサブチームを再帰的に引き出す必要があります。これを行うことができる閉鎖テーブルを参照するクエリがあるかもしれないと考えています。json として送信された場合の dto は、次のようになります。
どんな洞察も大歓迎です。
tree - 兄弟の位置を保存するには、どのツリー戦略を選択しますか?
ノード内で、子の位置が重要な場合、これらの位置で順序付けされたツリー全体を格納およびフェッチするために採用するツリー パターン (隣接リスト、マテリアライズド パス、ネストされたセット、クロージャー テーブルなど) はどれですか? 使いやすさと性能の面で優れているのはどれですか?
例
これらの階層データが与えられた場合:
Node 1.1
指定されたノードの位置を切り替えてNode 1.2
、新しい結果を保存できるようにしたいと考えています。次に、フェッチされた更新されたツリーは次のようになります。