0

私たちのアプリケーションは、Web サービスを介してクエリを公開します。クライアントは、追加の基準を指定して返される結果をさらに制限したり、まだ行っていないことを要求したりして、カスタム クエリを必要とすることが多いことがわかりました。公開。

これで、これらの新しいメソッドごとに新しいメソッドを作成するというアプローチを取ることができますが、それはやや不便です。クライアントサイトでのアプリケーションの展開には、通常、数週間の段階的な統合テストが必要です。アプリケーション管理者がパラメーター化された名前でクエリを定義する名前付きクエリ メカニズムと、これらのパラメーターを呼び出すだけの対応する Web サービスを提案しました。ただし、誰かが以前にこの問題を解決したと思わざるを得ないので、可能な設計について SO コミュニティから意見を求めたいと思います。

ありがとう!

アップデート

仕様パターンは良いものですが、私たちのアプリケーションは十分な量のデータを処理するため、クエリ作業の多くを RDBMS にプッシュする必要があります。さらに、私たちは 3 つの RDBMS バックエンドをサポートしているため、最大公約数アプローチの使用に行き詰まっています。つまり、最も機能の少ないデータベースが提供できる機能をできるだけ多く使用します。

4

3 に答える 3

2

バックエンドの設計上の決定として、このタイプのアプリケーションの「仕様パターン」を検討することもお勧めします。「仕様パターン」については、以下の投稿を確認してください。

http://www.mattberther.com/2005/03/25/the-specification-pattern-a-primer/

http://devlicio.us/blogs/jeff_perrin/archive/2006/12/13/the-specification-pattern.aspx

于 2008-11-02T16:56:04.480 に答える
1
  • Hibernates Criteria APIを見て、それを使用するか、ユーザーのために同様の機能を構築してください。
  • 努力する価値がある場合は、基準をグループ化するためのツリーのようなインターフェイスを提供してください。(「グループのすべての条件が一致する必要がある」/「1 つの条件が一致する必要がある」/「否定」)

利点:

  • 簡単に構築できます。
  • ユーザーパラメータが可能です。
  • 強力なクエリが可能です。
  • SELECT ... FROM table WHERE someRestriction AND (user-provided criteria) のような制限を適用できます
于 2008-11-02T16:50:20.060 に答える
0

ユーザーがどのようにインターフェースを使用しているかは本当にわからないので、「囚人が亡命を実行している」問題に非常に近いと感じることについて技術的なアドバイスを与えるのは少し時期尚早のようです。これを解決するためのいくつかの非常に良いアドバイスと一般的な方法がありますが、それらはあなたのユーザーのために機能しますか?たぶん、本当にあなたの問題についてがらくたを与えるのではなく、むしろうまく機能するワンボタンソリューションを持っていますか?(またはもっとグーグルのように?)

于 2008-11-02T17:51:48.720 に答える