数十種類のノードで構成されるツリー構造があります (各種類のノードはNodeBase
クラスから継承されます)。
ツリーで検索を実行して、特定のノードへの参照を返したいと考えています。たとえば、他のタイプのノードの中にノードCompany
を含むツリーがあるとします。ノードはノードで構成されます。従業員は部門の一部である必要があり、正確に 1 つの部門に属することができると想定されています。Department
Department
Employee
現在、各ノードが type の子ノードのリストを持つように設計されていますNodeBase
。ツリーは非常に大きくなり、時には数十万のノードになることがあります。挿入/削除操作はめったに使用されませんが、これらの大きなツリーでは検索操作に「時間がかかりすぎる」べきではありません。
employee ID
フィールドが私が提供する文字列と等しい従業員ノードへの参照を取得したいとします。その従業員がどの部門に所属しているのかわからないので、一致するものを見つけるためにすべてのノードを検索する必要があります。すべてのノードにemployee ID
フィールドがあるわけではありません。たとえば、部門にはそれらがありません。
このツリー構造の設計を考えると、検索機能を実装する最良の方法が何であるかはわかりません。
最初にデータを保存する方法を設計するためのより良い方法があると思われます (例: データベースを使用しますか?) が、現在、私はツリーで立ち往生しています。