問題タブ [hierarchical-data]

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 投票する
2 に答える
661 参照

plsql - Oracle階層クエリ

会社の階層を保持するテーブルがあります。社内にレベル数が決まっていないため、このフラットテーブルを使用することにしました。テーブルはうまく機能し、クライアントでカスケードリストを使用する場合は完璧です。ただし、「セクション」と、それが所有する他のすべての「セクション」を確認する必要があります。うまくいけば、以下の情報が私ができる必要があることのアイデアをあなたに与えるでしょう。

テーブル定義

データ

私が見る必要があるもの

クライアント側のC#でこれを行うことはできますが、データベースのビューとして使用したいと思います。

誰かがこれを手伝ってくれませんか。それも可能ですか?

何か説明が必要な場合は、コメントを残してください。詳細をお知らせします。

0 投票する
4 に答える
853 参照

sql - Oracleの階層クエリ-制御不能?

以前は機能していたOracle10SQLの階層クエリがあります。しかし、それが基づいていたマテリアライズド・ビューを削除したため、そのビューを完全に除外しても、正しく表示されなくなりました。

元のクエリは次のようになりました。

それでも機能すると思いますが、lastobsmvビューがないと、テストできません。

私がそれを切り詰めれば

それでも機能し、41Kレコードを返します。ただし、connect by句を使用すると、制御不能になり、数百万のレコードが返されます(通常、正確なカウントを取得する前にキャンセルする必要があります)。

私はここで本当に露骨な何かを見逃していますか、それともこれが機能するはずの方法を誤解していますか?ありがとう。


ヴァディム、

観察用語のリストとそれらが属するグループを返す必要があります。たとえば、

オブスヘッド:

HierGrps:

生成する必要があります

(最終的には、このobs用語が使用された回数とともに、後で心配します)。

0 投票する
4 に答える
18889 参照

sql - 子レコードのリストを持つ親テーブルのレコードを取得するSQLクエリ

MS SQL Server 2005データベースには、親と子の2つのテーブルがあり、親は多くの子レコードに関連付けられている可能性があります。[Child.parent_id]は[parent.id]に関連しています。子テーブルにも列[foo]があります。親テーブルのすべてのレコードを戻す必要があります。[child.foo]は1対多のパラメーターのそれぞれで一致します。たとえば、[child.foo]の値が「fizz」で[child.foo]の値が「buzz」のすべての親レコードが必要です。以下のクエリを試しましたが、1つだけに一致するレコードが返されます。

0 投票する
8 に答える
56424 参照

sql - SQLでデータツリーを表現するには?

Tree と TreeNode を組み合わせたデータ ツリー構造を作成しています。ツリーには、データに対するルートおよび最上位レベルのアクションが含まれます。UI ライブラリを使用して、ツリーを TreeView にバインドできる Windows フォームにツリーを表示しています。

このツリーとノードを DB に保存する必要があります。ツリーを保存し、次の機能を取得するための最良の方法は何ですか?

  1. 直感的な実装。
  2. 簡単なバインディング。ツリーから DB 構造への移動とその逆 (存在する場合) が容易になります。

2つのアイデアがありました。1 つ目は、データをテーブル内の 1 つのライナーにシリアル化することです。2 つ目は、テーブルに保存することですが、データ エンティティに移動すると、変更されたノードのテーブルの行の状態が失われます。

何か案は?

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

mysql - アルバムとそのメディアとサブアルバムとそのメディアを削除する適切な方法

そのメディアでアルバムの階層データを削除する適切な方法は何でしょうか。

ループを開始して、すべてのサブアルバム ID を見つけて削除し、そのアルバム ID に属するすべてのメディアを削除するクエリを作成する必要があります。

データが大量にある場合、またはユーザーのアルバムが大量にある場合、これはクエリ実行の負荷になります。あなたのデバイスがこれにあるもの。

私のデータベース構造:

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

sql - 子の再帰をカウントするSQLCTE

(cteを使用して)テーブル内の子をそのようにカウントして、親レベルで子を含むすべての子の数を取得したいと思います。利用できるサンプルはありますか?

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

mysql - 階層データから限られた量のレコードを取得する

3 つのテーブルがあるとします (重要な列のみ)。

  1. カテゴリ (catId key、parentCatId)
  2. Category_Hierarchy (catId key、parentTrail、catLevel)
  3. 製品 (prodId key、catId、createdOn)

auto_increment別の Category_Hierarchy テーブルを持つ理由があります。これは、MySql トリガーが同じように機能し、値を使用したい場合にトリガー内の同じテーブルに列を設定できないためです。 . この問題のために、これは無関係です。とにかく、これらの 2 つのテーブルは 1:1 です。

カテゴリ テーブルは次のようになります。

カテゴリ_階層

製品

Category_Hierarchy を使用すると、次のようなカテゴリ下位ツリーを簡単に取得できます。

これは、下位ツリーのルート ノードを含むカテゴリ 3 (つまり、2 未満、つまりルート カテゴリである 1 未満) の完全な下位ツリーを返します。ルート ノードを除外することは、もう 1 つのwhere条件です。

問題

ストアドプロシージャを書きたい:

これは、特定のカテゴリに 3 つの直接的なサブカテゴリがある場合 (その下にノードの数に関係なく)、30 個の結果 (下位ツリーごとに 10 個) が得られることを意味します。5 つのサブカテゴリがある場合、50 の結果が得られます。

これを行うための最良/最速/最も効率的な方法は何ですか? 可能であれば、他のソリューションや準備済みステートメントと比較して高速に動作しない限り、カーソルを避けたいと思います。これは、DB への最も頻繁な呼び出しの 1 つになるためです。

編集

写真は 1000 の言葉を伝えるので、画像を使って自分の言いたいことをよりよく説明しようとします。下の画像はカテゴリツリーを示しています。これらの各ノードには、関連する任意の数の製品を含めることができます。商品は写真に含まれていません。

カテゴリーツリー

したがって、この呼び出しを実行すると:

効率的に 30 個の製品を入手したい:

  • オレンジ サブツリー全体からの 10 個の最新製品
  • 青いサブツリー全体からの 10 個の最新製品と
  • 緑色のサブツリー全体からの 10 個の最新製品

ノードの下の各ノードから 10 個の最新製品を取得したくありませんcatId=1。これは 320 個の製品を意味します。

0 投票する
2 に答える
12952 参照

sql - SQLServerで同等のORACLEConnectby句

SQLServerのOracleのCONNECTBYに相当する句はありますか。parentIdフィールドを使用してカテゴリツリーを構築するための要件。

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

sql - WindowsフォームVB.NET-TreeViewに階層データを入力します

アロハ、私はWindowsフォームアプリのツリービューにSQLデータベースからの階層データを入力しようとしています。

データベースの構造は次のとおりです。

id_parentでNULL値を持つレコードはメインのカテゴリであり、id_parentを持つレコードはサブカテゴリです。

TreeViewにデータを入力するためのコードを誰かが手伝ってもらえますか?私はASP.NETアプリでそれを行うことができました。それが役立つ場合は、次のコードを使用します。

0 投票する
2 に答える
172 参照

sql - 親の SQL クエリ番号

データベースにテーブルがありますtype

各タイプの親 (子孫) の数を知る必要があります

ID -------- 子孫

MySQL を使用してこれを行うために最適化された SQL ステートメントを作成するにはどうすればよいですか?