0

「従業員」テーブルがあります。従業員には管理者がおり、これらの関係は「Associations」テーブルに設定されています。

すべての階層をファイルに読み込む必要があります。例えば

ジャックセールス担当者、ジル - スーパーバイザー、ジェームズ - ラインマネージャー、ジェイコブ - ディレクター

まず、リストでさまざまな従業員レベルを読みました。たとえば、営業担当者リスト、スーパーバイザー リストなどです。

次のステップは、階層順のリストを使用して関連付けテーブルにクエリを実行し、セットを作成することです。

たとえば、関連付けテーブルから、関連キーが営業担当者リストにあり、employeekey がスーパーバイザー テーブルにあるエントリが一致します。これを (営業担当者、上司) のセットとして取得し、すべてのリストが処理されるまで、リストの最後のアイテムを使用して関連付けテーブルをクエリし続けます。

問題は、可変レベル セットを保持するのに十分なデータ構造が見つからないことです。リスト処理のすべてのレベルで、セットは大きくなるはずです。助言がありますか?

代替ソリューションは大歓迎です。階層の数は潜在的に大きく (100 万になる可能性があります)、パフォーマンスが重要であることに注意してください。

4

2 に答える 2

0

テーブルを解析し、解析したものすべてをワーカーの List> に保存できます。新しい種類のワーカー レベル (マネージャー/ディレクターなど) が見つかるたびに、そのレベルをプライマリ リストの 1 つとワーカーの新しいリストとして追加します。作成したばかりのリストにこのレベルがあります。最後に、さまざまなレベルのワーカーのすべてのリストがあり、ワーカー自体が必要なレベルのワーカーのリストに含まれます...

(または、Dictionary<string,List<worker>>辞書のキーを使用してレベルにすることもできます。たとえば、SomeDict["Directors"].Add(ThisWorkerObject);

于 2013-10-14T00:33:25.293 に答える