web-dev-qa-db-ja.com

大規模な階層データの探索的インターフェース?

ここに最後の質問を投稿した後、ツリービューがどのように悪魔であるかについての多くの記事を読みました。ほとんどの人が、より優れた検索エンジン、タグ付け、ファセット検索について話します。

しかし、大きな階層データ構造のために、探索的なInteraceが必要になることがあります。

重要な点は次のとおりです。

  • データは階層的に生成され、子ノードをリクエストできますが、ノードが持つ子の数がわからない、ゼロになることも、数千になることもあります。
  • ユーザーがシステムを初めて使用するとき、すべてのデータが必要であるとユーザーに伝えます。それは彼らのビジネスであり、「小さい部分」は理解する方が良いという選択肢がないためです。
  • しばらくシステムを使用し、一部のデータのみが必要であることを理解すると、必要なものにフィルターをかける傾向がありますが、これは学習プロセスであり、ほとんどの場合、それを試したときに必要なものだけを認識します。

最初の数週間の使用で発生する調査段階のため、検索のような機能は不可能です。また、データが大きいため、タグからデータを生成することはできません。ファセット検索プロパティでさえ、何千もの特性を持つことができます。

単純なツリーを構築すると、データ全体を参照できますが、ノードが持つことができる子ノードの数は、クライアントを強制終了するのに十分な場合があります。

私は二相インターフェースについて考えました:

  1. 探索ビュー
  2. 特定のビュー

最後の1つは、ユーザーが見つけて興味深いと思ったノードで構成されます。

しかし、最初のものはいくつかのメカニズムを必要とします。そして、それは包括的なデータチャンクでデータ全体を閲覧することを可能にします。

私のアイデアは

  • 子がある場合、すべてのノードのページング。したがって、ユーザーには10人の子供しか表示されず、次の10人または特定のページに移動できます。おそらくソートやフィルタリングの助けを借りて。
  • 次の10個のノードをロードする仮想ノードですが、これはユーザーの速度を低下させるだけで、とにかくツリーが大きくなるため、おそらく悪い考えです。
5
K..

これは創造的になる絶好の機会です。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

うまくいけば、スマートプログラミングでパフォーマンスの問題を解決できます。必要なものをロードするだけです。ユーザーが気にしないものを非表示にできるようにします。ツリーを使用します(論理的には理にかなっています)が、線形の従来のツリーUIに悩まされないようにしてください。

7
sirtimbly