問題タブ [nested-sets]
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 - ネストされたセット SQL の問題
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
$this->db->query() を介して codeigniter でこのサンプル コードを実行しようとしましたが、このエラーが発生します
この SQL を phpmyadmin で実行したところ、問題なく動作したため、データベースに問題はないと確信しています。しかし、コードを介して実行すると、エラーが発生します。これはコードイグナイターの問題でしょうか? ファイルのエンコーディングの問題ですか? query() 関数は一度に複数のクエリをサポートしていますか? 私は困惑しています。
mysql - MySQLの特定のカテゴリの子カテゴリの下にあるアイテムの数を取得します
このテーブルがあるとしましょう
MySQLに、カテゴリにあるアイテムの数(その子に属するアイテムを含む)を取得する方法はありますか?このようなもの...
category_idsを取得するクエリと子カテゴリの数を取得するクエリを接続するのに問題があります。
ruby-on-rails - awesome_nested_set を使用してカテゴリ選択メニューをアルファベット順に並べる
Rails 3 で awesome_nested_set を使用して、階層的なカテゴリ システムを作成しました。ビューにカテゴリ セレクターを表示するために、次のコードを使用しました。
<%= form.select :parent_id, options_for_select(nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" }.unshift(["No Parent", nil]), @category.parent_id) %>
カテゴリをレベルごとにアルファベット順に並べようとしています。nested_set_options(Category, @category)
をこれに変更するとnested_set_options(Category.order("name"), @category)
、カテゴリ リスト全体が名前順に並べ替えられます。私がやりたいのは、各ノードの子を名前のアルファベット順に並べ替えることです。
たとえば、結果の選択メニューを次のように並べたいとします。
php - Propel:ネストされたセットで列を集約...どのように?
nested_set
これはビヘイビアーを使用して簡単に実行できるはずの何かのように見えるので、私は何かが欠けていると確信しています。
複数のカテゴリに分類されるリストがあります。カテゴリは、Propelの動作を使用して管理されます。カテゴリには、各カテゴリのリストをカウントするために使用される呼び出しもあります。nested_set
aggregate_column
listing_count
個々のカテゴリごとに、これは完全に機能します。私が問題を抱えているのは、カテゴリの各祖先の合計を累積することです。
たとえば、「スポーツ」カテゴリには、「ゴルフ」、「サッカー」、「テニス」という3つの子があります。「テニス」カテゴリには、「草」と「粘土」という2つの子があります。「Clay」にリストが追加されたら、「Sport」と「Tennis」の合計も更新する必要があります。
私はこれを達成するための(良い)方法を理解することはできません。誰かが光を当てることができますか?
java - ネストされたデータをHibernateで保存するための効率的な方法を探しています
私は、java/hibernateでネストされたデータを表す効率的な方法を見つけようとしています。私の最初の解決策は、自己参照結合を使用した親子リストでしたが、SQLでレポートを作成する場合、この手法には明らかな落とし穴があります。ネストされたセットとマテリアライズされたパスを調べていましたが、SQLを介したクエリにも効率的な、休止状態にネイティブなネストされたデータを表す方法があることを期待していました。
zend-framework - Doctrine 1.2 Nested Set は本当に遅いです。どうすれば改善できますか。(NestedSet)
Doctrine 1.2 で簡単なクエリを実行します。
これがクエリです。
なぜこれがとても遅いのですか?
誰でも、より良いパフォーマンスを得るための解決策を持っています。
ありがとう
php - PHPとMySQLを使用して、親子(隣接)テーブルをネストされたセットに変換するにはどうすればよいですか?
私はこの数時間をオンラインでこの質問の解決策を見つけようとして過ごしました。ネストされたセットから隣接に変換する方法については、たくさんの例を見つけました...しかし、その逆の例はほとんどありません。私が見つけた例は、機能しないか、MySQLプロシージャを使用していません。残念ながら、このプロジェクトの手順を使用することはできません。純粋なPHPソリューションが必要です。
以下の隣接モデルを使用するテーブルがあります。
そして、それを以下のネストされたセットテーブルに変換したいと思います。
これが私が必要とするものの画像です:
このフォーラム投稿( http://www.sitepoint.com/forums/showthread.php?t=320444 )の擬似コードに基づいた関数がありますが、機能しません。左に同じ値を持つ複数の行を取得します。これは起こらないはずです。
これは、上記のスクリプトの出力です。
INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '2'rgt
、category
'5'、'ハードカバー')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '2'rgt
、category
'7'、'大判')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '1'rgt
、category
'8'、'Books')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '1'rgt
、category
'10'、'CD \'s')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '10'rgt
、category
'13'、'Vintage')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '1'rgt
、category
'14'、'雑誌')INSERT INTO
nested_table
(id
、、、 )VALUES(NULLlft
、 '0'rgt
、category
'15'、'ROOT')
ご覧のとおり、「1」のlft値を共有する複数の行があります。同じことが「2」にも当てはまります。入れ子集合では、左と右の値は一意である必要があります。ネストされたセットの左右のIDに手動で番号を付ける方法の例を次に示します。
画像クレジット:Gijs Van Tulder、参考記事
mysql - どの階層モデルを使用する必要がありますか? 隣接、ネスト、または列挙?
世界のすべての地理的な場所とそれらの関係の場所を含むテーブルがあります。
階層を示す例を次に示します。データが実際に 3 つすべてとして保存されていることがわかります。
- 列挙パス
- 隣接リスト
- ネストされたセット
データも明らかに変更されることはありません。以下は、woeid が 13911 であるイギリスのブライトンの場所の直接の祖先の例です。
表: geoplanet_places
(560 万行)
大きい画像: http://tinyurl.com/68q4ndx
次に、 という別のテーブルがありますentities
。このテーブルには、地理的な場所にマップしたいアイテムが保存されます。いくつかの基本的な情報を保存しますが、最も重要なのwoeid
は からの外部キーであるを保存することですgeoplanet_places
。
最終的に、entities
テーブルには数千のエンティティが含まれます。そして、エンティティを含むすべてのノードの完全なツリーを返すことができる方法が欲しいです。
地理的な位置に基づいてエンティティのフィルタリングと検索を容易にし、その特定のノードで見つかるエンティティの数を検出できるようにするための何かを作成する予定です。
したがって、entities
テーブルにエンティティが 1 つしかない場合、次のようなものになる可能性があります
`地球 (1)
イギリス (1)
イングランド (1)
イーストサセックス (1)
ブライトンとホーブ市 (1)
ブライトン (1)`
次に、デボンにある別のエンティティがあるとしましょう。次のように表示されます。
アース (2)
イギリス (2)
イングランド (2)
デボン (1)
イーストサセックス (1) ... など
各地理的位置の「内部」にあるエンティティの数を示す (カウント) は、ライブである必要はありません。毎時間オブジェクトを生成してキャッシュすることで生活できます。
目的は、エンティティを持つ国のみを表示するインターフェイスを作成できるようにすることです..
以下のようなので
Argentina (1021)
、Chile (291)
、...
、United States (32,103)
、United Kingdom (12,338)
次に、ユーザーが United Kingdom などの場所をクリックすると、United Kingdom の子孫であり、エンティティを含む直接の子ノードがすべて表示されます。
英国に 32 の郡があるが、最終的にドリルダウンしたときに 23 の郡のみにエンティティが格納されている場合、残りの 9 郡は表示したくありません。それは場所だけです。
このサイトは、私が達成したい機能を適切に示しています:
http://www.homeaway.com/vacation-rentals/europe/r5
このようなデータ構造をどのように管理することをお勧めしますか?
私が使用しているもの。
- PHP
- MySQL
- ソル
ドリルダウンはできるだけ迅速に行う予定です。私は、検索のためにシームレスな AJAX インターフェイスを作成したいと考えています。
また、インデックスを作成することをお勧めする列を知りたいです。
ruby-on-rails - 関連するレコードのサブセットのフォームを表示するにはどうすればよいですか?その一部はまだ存在していませんか?
タスクとユーザーがいます。ユーザーがタスクを完了すると、ユーザーが費やした時間を示すフィールドを持つCompletionを作成します。すべてのタスクを完了ステータスとtime_spent属性とともに表示するフォームが必要です。送信時に、既存の補完を更新し、新しい補完を作成する必要があります。可能であればFormtasticでこれを実行したいのですが、基本的なRails3ソリューションに満足します。
追加の側面は、マイルストーンに属するタスクなど、特定の一連のタスクだけを表示したいということです。完了コントローラーに投稿するフォームをマイルストーンコントローラーに含める必要がありますか?
更新 私は今何日も探していました、そして私は多くの 行き止まり を見つけました。Railsフォームのこの複数のオブジェクトは近いですが、すべてのリンクオブジェクトがすでに存在している必要があります。
この質問を際立たせるのは、一部のリンクがまだ存在せず、ネストされるリンクの単一のモデルがないことです。たとえば、Ryan Daigleのネストされたオブジェクトフォームの投稿)この作業を編集用のフォームで作成しましたユーザーのすべての可能な完了ですが、1つのフォームで可能な完了のサブセットを編集する必要があります。has_many
Completionsとbelongs_to
Userの冗長オブジェクトMilestoneCompletionsを作成する必要がありますか?ActiveModelはできますhas_many
か?
sql - ネストされたセットから JSON を生成 (perl、sql、jquery)
データベースに (ネストされたセットを使用して) コンテンツ ページがあり、jQuery jsTree プラグインで表示する必要があります。次のようなデータで JSON を返す必要があります。
私はそれを行うために何が必要ですか?
ハッシュの配列を JSON に変換できますが、配列を生成する方法がわかりません。
サンプルデータ:
私は取得する必要があります: