問題タブ [hierarchy]

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

resources - ExchangeServerの組織構造

ExchangeサーバーからDirector->Manager->Employeeによって階層を構築する方法を理解する必要があります。私は交換についての知識が非常に限られているので、誰かが私のために何かアイデアを持っていますか?

ありがとう

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

.net - Linq to Entitiesコードが行を複製するのはなぜですか?

オブジェクトの階層を管理するためにADO.NETEntityFrameworkを使用しています。それぞれに単一の親と0個以上の子があります。

親と子を持つADO.NETEntityFrameworkオブジェクトhttp://img14.imageshack.us/img14/7158/thingpi1.gif

これらは、TreeViewコントロールを使用してWPFアプリケーションに表示します。ボタンをクリックするだけで、選択したものに子として新しいものを追加できます...

Visual Basic .. ..

しかし、問題があります。単に新しいThingをデータベースに追加するのではなく、最初に親の複製を追加しますが、奇妙なことに、IDのuniqueidentifierは空です。

これによりデータベースが乱雑になり、ButtonAddThingボタンを2回クリックした後、次の例外がスローされます。

例外:「PRIMARYKEY制約'PK_Thing'の違反。オブジェクト'dbo.Thing'に重複するキーを挿入できません。ステートメントは終了しました。」

これらは、生成されたT-SQL挿入ステートメントです...

親の複製:

新しいこと:

Linq to Entitiesコードがこれらの親行を複製するのはなぜですか?この親子関係を適切に処理するにはどうすればよいですか?


更新:新しいものを作成するときの問題だけではありません。「削除」ボタンも正しく機能していません。

または

アプリケーションのデバッグ中にSQLServerプロファイラーを監視しています。観察された行動:

  1. 最初のボタンクリックで問題なく削除されます。
  2. 2番目のボタンをクリックすると、重複した親(空のGUIDの一意の識別子の主キー)が挿入され、削除が実行されます。
  3. 3番目のボタンクリックは失敗します(PRIMARY KEY制約の違反)。これは、空のGUIDプライマリキーを持つ2番目のThingを挿入できないためです。
0 投票する
1 に答える
268 参照

internationalization - Sphinx で書かれたドキュメント セットの複数の翻訳を維持するには?

私は個人的なプロジェクトを開始しており、フランス語を話す仲間と英語を話す他の仲間にドキュメントを提供したいと考えています。

では、ディレクトリをどのように整理すればよいでしょうか?

何を分離する必要がありますか (ソース、生成されたナビゲーション リンクの言語などのいくつかの conf 項目だと思います...)?

分離してはいけないもの (重複を避けるための構成アイテムの最大数) は?

0 投票する
5 に答える
8243 参照

oop - サブクラスの命名のベスト プラクティス

インターフェイスまたはクラスによって表される概念があり、それを拡張する一連のサブクラス/サブインターフェイスがある状況に陥ることがよくあります。

例: 汎用の「DoiGraphNode」 リソースを表す「DoiGraphNode」 Java リソースを表す「DoiGraphNode」 パスが関連付けられた「DoiGraphNode」など。

3 つの命名規則が考えられます。選択方法についてコメントをいただければ幸いです。


オプション 1: 常にコンセプトの名前から始めます。

したがって、DoiGraphNode、DoiGraphNodeResource、DoiGraphNodeJavaResource、DoiGraphNodeWithPath などです。

長所: 何を扱っているかが非常に明確です。すべてのオプションを簡単に確認できます。

短所:あまり自然ではありませんか?全部同じに見える?


オプション 2: 特別なものを先頭に置きます。

したがって、DoiGraphNode、ResourceDoiGraphNode、JavaResourceDoiGraphNode、PathBaseDoiGraphNode など。

長所:コードで見ると非常に明確です

短所: 特に名前を覚えていない場合、見つけるのが難しい場合があります。視覚的な一貫性がありません。


オプション 3: 特別なものを配置し、冗長なテキストの一部を削除する

したがって: DoiGraphNode、ResourceNode、JavaResourceNode、GraphNodeWithPath

長所: 読み書きすることがそれほど多くない 短所: cr*p のように見え、非常に一貫性がなく、他の名前と競合する可能性がある

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

php - Webアプリケーションの場合、ネストされたディスカッションを複数のページに分割するための最良の方法は何ですか?

PHP / MySQLアプリケーション用のスレッド化されたメッセージ表示(SlashdotやYoutubeのコメントなど)を設計していますが、コメントを並べ替えてページに分割し、たとえば1ページに20個のコメントを含めるにはどうすればよいか疑問に思っています。しかし、それでもそれらをネストします。

私のアプリのコメントは無制限のレベルでネストできます。この構造は、隣接関係テーブルであると私が信じているものを使用して表されます。これは、昇順/降順の関係を持つ各ペアの行を含む個別のテーブルです。その関係テーブルには、CHILDID、PARENTID、およびLEVELがあり、レベル2は「曽祖父母」などを意味します。

私の質問は、エンドユーザーにとっての使いやすさと、効率的なDBクエリを構築する実用性の両方の1つです。私はこれらのオプションを検討しました:

  • ツリー内の位置に関係なく、結果を日付ごとにページに分割します。これにより、特定の日付範囲内のすべてのコメントは、親と一緒に表示されなくても一緒に表示されます。親と同じ時間に投稿されたコメントはすべて同じページに表示され、その場合は「ネスト」して表示できますが、親から孤立したコメントがあります。これはおそらく許容範囲です-YouTubeのコメントで行われる方法です-親よりもはるかに遅れて作成されたコメントは、親と同じページに表示されません(親が最新のページにない場合)が、代わりに他の最新のコメント。

  • ツリーをトラバースするように、ノードを順番に取得します。これにより、日付よりもツリー構造が優先されますが、兄弟は日付で並べ替えることができます。これの利点は、親が最新のコメントからのページ数であっても、返信は常に親(返信するコメント)とともに配置されることです。これは、icanhascheezburgerブログなどのアプリで行われる方法です。誰もが最大の木の枝に返信を追加したくなるような方法のように、私はそれについていくつかのことが好きではありません。

  • 3番目のオプションは、Slashdotと同じように行うことです。この場合、コメントをページに分割しませんが、1つの大きなツリーがあります。ページサイズを管理しやすくするために、代わりに低評価のコメントのカリングを開始します。

最初のクエリは、リレーションテーブルを指定した場合の最も単純なDBクエリだと思いますが、他のアイデアを受け入れることができます。

3種類すべてのこのようなシステムの中には、何らかの方法でネストレベルを制限するものがあります。これは、Xレベルを繰り返した後、兄弟であるかのように他のすべてを組み合わせることができるため、簡単に実行できます。たとえば、YouTubeのコメントは1つのレベルにしかレンダリングされません。他のシステムでは、5レベル程度後に「ネストレベルを超えました」と表示されることがあります。

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

sql - CTE は階層をバックアップしますか?

階層データ モデルで特定のレコードのすべての子を見つけることができますが (以下のコードを参照)、特定の子 ID を使用して親/子チェーンをたどる方法がわかりません。これを行う方法を理解するために、誰かが私を正しい方向に向けることができますか? これはLinq to SQLでも可能ですか?

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

linq-to-sql - TreeView、Linq-To-SQL の再帰的なデータ作成

TreeViewにデータバインドでき、階層を完全に設定できるParentID/ChildID関係を持つIEnumerable(Employeeの)があります。ただし、すべてのレコードを手動でループし、すべてのノードをプログラムで作成して、その特定のアイテム/なしのデータに基づいて各ノードの属性を変更できるようにしたいと考えています。

これを行う方法を説明するチュートリアルはありますか? データセットとデータテーブルを使用するものをたくさん見てきましたが、Linq to SQL (IEnumerable) でそれを行う方法を示すものはありません

アップデート:

これが私がDataSetでそれを行う方法です-IEnumerableで同じことを行う方法を見つけることができないようです。

0 投票する
3 に答える
1245 参照

sql - LINQ2SQLおよびPOCOオブジェクトとの親子関係

LINQ2SQLを学び始めたばかりで、最初に試したかったことの1つは単純な親子階層ですが、それを行うための良い方法を見つけることができないようです。私はここSOでいくつかの例を見て、グーグルで検索しましたが、それらを直接適用することができなかったので、私が達成しようとしていることを正確に説明します。

タグ付きの一般的な例を使用してみましょう。

データベーステーブル:Post--Post_Tags-タグ

単純なPostクラスを作成したので、Linq2Sqlクラスを渡さないようにします。

Postsテーブルから最新の5つのレコードを選択し、それらに関連するタグを取得して、各PostのTagsプロパティが入力されているIListを返します。

具体的なLinq2Sqlコードを教えていただけますか?

私は試した:

これは機能しますが、タグレコードごとにPostレコードを複製するため、ユーザーが使用するすべてのメソッドでプロパティマッピング(Id = p.Id、...)を複製する必要があります。次に、このアプローチを試しましたが、この場合、すべてのタグについてDBへのラウンドトリップがあります。

従来のADO.NETで実行している場合は、2つの結果セットを返すストアドプロシージャを作成します。1つは投稿レコード、もう1つは関連するタグレコードです。次に、それらをコードにマップします(手動、DataRelation、ORMなど)。LINQ2SQLでも同じことができますか?

このような単純な階層をどのように処理するかについて、いくつかのコードサンプルを見るのは本当に興味があります。

はい、IList <>オブジェクトとカスタムクラスを返したいのですが、クエリ可能なLinq to Sqlオブジェクトではありません。たとえば、Linq2Sqlを放棄する場合は、データアクセスコードに柔軟性を持たせたいからです。

ありがとう。