問題タブ [materialized-path-pattern]
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.
mysql - MySQLの入れ子集合モデルとマテリアライズドパス
非常に限られた量の技術的知識でmysqlを使用して私の最初の大きな(っぽい)プロジェクトを始めたばかりです。ツリー階層をどのように表現するかという非常に一般的な質問に直面しています。私はグーグルをかなり広範囲に経験し、入れ子集合モデルを使用してプロジェクトを描き始めましたが、左と右の列の間には少なくとも1000の値があります。深く掘り下げる前に、経験豊富な人が何を勧めるかについての基本的な理解を得たいと思いました。
私のプロジェクトには、製品メーカーを絞り込むための検索機能で使用される4つのレベルのノードが含まれます。各レベルにはいくつかのオプションがあります。1つのパスは次のようになります。
- 仕様グループ(親)
- 施設建設(5つのオプションのうちの1つ)
- コンクリート(20のオプションのうちの1つ)
- プレキャストコンクリート(10個中1個のオプション)
- 基準に適合するメーカーの検索リスト
- プレキャストコンクリート(10個中1個のオプション)
- コンクリート(20のオプションのうちの1つ)
- 施設建設(5つのオプションのうちの1つ)
すべてのノードがデータベースに追加された後、少なくとも数年間はノードが変更されるとは思いません(これらは、業界標準であるマスタードキュメントからのものです)。メーカーのリストは(願わくば)頻繁に追加されます。
正しい道を歩み始めるための助けと、関連資料へのリンクをいただければ幸いです。
ありがとう!
javascript - 具体化されたパスから JSON ツリーを構築する
MongoDB で実体化されたパスを使用してツリーを表すことを計画しており、実体化されたパスを JSON ツリーに変換する必要があります。
元。// マテリアライズド パス
結果は次のようになります。
区切られた文字列を JQuery を使用して階層的な JSON に変換すると、正常に動作することがわかりました。
また、Ruby で記述され、再帰を使用するBuild tree from materialized pathも見つけました。これが Javascript で実装されることに興味があり、興味があります。また、Ruby と Javascript の両方に堪能で、書き換えたいと考えている人がいるかどうか疑問に思っています。Ruby から JS へのコンバーターを試してみましたが、結果はわかりませんでした。
ありがとう、ネビル
php - 最後のアイテムを選択するためのマテリアライズドパスPHP正規表現
マテリアライズされたパスからアイテムの最後の出現を取得しようとしています。以下は、X、Y、Zを任意の文字列にする例として提供した可能な値のサブセットです。
上記の対応する行に対して以下を出力するphpregexを使用して、パスの最後の項目を選択するにはどうすればよいですか。
mysql - MySQLに1DESC、2 ASCによるORDERのインデックスを使用させることは可能ですか?
私は具体化されたパスドリブン掲示板を持っています。次のクエリを使用してメッセージを順番に取得しています。
ここroot
で、id
はスレッドのルートメッセージであり、path
はマテリアライズドパスです。
ただし、インデックスを使用するためにこのクエリを実行するための私の努力はどれも成功しませんでした。
現時点では、列の下のテーブルのすべての行の数が表示されていrows
ます。私は疑問に思っています、その数を減らすか、他の方法でクエリを最適化する方法はありますか?
クエリの主な問題はページ付けです。前のページの最後のメッセージの隣にあるメッセージから2番目のページを開始する必要があります。だから私はそれをまっすぐな方法で欲しいのです-サブレクトやものなしで。
現在の設定は、スレッドの途中から2ページ目を開始するため、あまり良くありませんが、少なくとも論理的です。
php - マテリアライズド パス構造化データの正規表現を使用した Mysql の更新
文字列の先頭を一致させ、その一致した部分を別の文字列に置き換える mysql で更新クエリを実行するにはどうすればよいですか?
私の問題の背景は、具体化されたパスを使用して階層データを構造化し、このタイプのクエリを使用して、すべての子を持つノードを別のノードに移動する必要があることです。
助けてくれてありがとう!
android - マテリアライズされたパスを持つテーブルから直接の子孫のみを選択します
AndroidアプリのSQLiteデータベースにディレクトリ構造を保存するために「マテリアライズドパス」パターンを使用しようとしています。私の単一のテーブルには、次のようなファイルパスである主キーフィールドがあります。
/sdcardディレクトリの直接の子のリストを取得したいと思います。このSQLを使用して/sdcardのすべての(間接的な)子孫を取得する方法を知っています:
すべての行を返します。しかし、トップレベルの子だけを取得するためのSQLは何なので、次のようになります。
この質問への答えは洞察を提供するかもしれませんが、私のSQLは理解するのに十分なほど強力ではありません'スクラムマイスターの応答: mysqlのパスに基づいて選択する
sql-server - SQL Server: ビューでのマテリアライズド パス トラバースのクエリの変換
このクエリを、そのユーザーに関連するすべてのグループ (それらのグループのサブツリーを含む) を選択するパラメーターとして UserId を渡して呼び出すことができるビューに変換したいと思います。
実際、私は2つのテーブルを持っています:
- RoleHid フィールドの具体化されたパスを介して varchar(8000) として定義されたロール ツリーを含む「EVA_Roles」
- フィールド UserId を通じてユーザーをロールに関連付ける「EVA_UsersInRoles」
ここでの問題は、一部のロールのみが EVA_UsersInRoles テーブルのユーザーに関連している可能性があることですが、これらのロールはツリー階層内の他のロールの親である可能性があるため、ユーザーごとに複数のサブツリーを取得する必要があります。最後に、うまくいくように見えるこのクエリを思いつきましたが、ビューに変換したいと思います。もちろん、私が直面している問題は、ビューの結果をフィルター処理するために使用する UserId パラメーターがサブクエリ内にあることです。
これをビューにリファクタリングするためのヒントはありますか?
ビューに値を渡す必要がある場所にパラメーターを残しました。ビューでリファクタリングすることは不可能かもしれないと思います。マイクロ ORM (PetaPoco) をより使いやすい方法で利用するためだけでした。それ以外の場合は、コードで SQL を使用する必要がありますが、問題ありません。気にしないでください。
テーブル定義について:
RoleHid の具体化されたパスは、このロジックに従います。RoleId 2 が RoleId 1 の子である次のデータを考えてみましょう:
RoleId 1
RoleHid "1"。
RoleId 2
RoleHid "1.2."
上記のクエリを使用すると、特定のユーザーとアプリケーションに関連付けられたすべてのサブツリーを取得できます。
javascript - マテリアライズド パスからのオブジェクト
具体化されたカテゴリ パスの配列からカテゴリ オブジェクトの配列を作成しようとしています。
ご覧のとおり、Business
他のすべてはサブカテゴリにすぎないため、一度だけ存在する必要があります。ただし、Leadership
両方とも異なる構造にあるため、2 回存在する必要があります。
フィドルhttp://jsfiddle.net/9uC9Z/をチェックアウトすると、それBusiness
が 4 回存在することがわかります。
どうすれば問題を解決できますか?
結果のコードが非常に複雑な場合は、コード コメントをいただければ幸いです。
編集:配列
内の実体化されたパス文字列は、data
本のカテゴリ階層を反映しています。例は次のとおりです。
それはちょうど1冊の本を表しています。ここで、すべてのカテゴリに対して 1 つの MongoDB ドキュメントを作成したいと考えています。上記のサンプル本は、3 つのカテゴリ オブジェクト (ビジネス、管理、リーダーシップ) を生成します。ただし、カテゴリ (またはサブカテゴリ) オブジェクト/ドキュメントが既に存在する場合は、別のものを作成する必要はありません。
result
したがって、MongoDB コレクション内に格納するカテゴリ オブジェクトを表します。(カテゴリ間の関係を追加しますが、それは現在の問題の一部ではありません。)