2009-08-10 9 views
2

これはおそらく20年ほど前の質問ですが、とにかく質問します。複数の検索オプションがある画面があります。いくつかは組み合わせることができます。いくつかは排他的です。複数の検索オプションを処理する最良の方法は何ですか?

例:

最初と最後の名前で検索

OR

年齢

で検索これを処理するための最良の方法は何ですか?私はアプリでこれを処理し、多くの機能のうちの1つを呼び出すか、または1つの機能をif/elseのすべての束で呼び出します。一連のif/elseを行うのは時代遅れのようです。もっと効率的な方法はありませんか?

答えて

2

ビルダーを使用して、さまざまな述語をオブジェクトに収集し、そのオブジェクトを関連するクエリを生成する関数/メソッドに渡すことをお勧めします。

SQLORM Java libraryは、このアプローチを使用してオブジェクト指向の方法でSQLクエリを作成します。 This pageは、ビルダーのアプローチに対して、多くのif-elseがあるメソッドを使用してクエリ文字列を作成する際の長所と短所をよく説明しています。

0

どのフィールドがフロントエンドで一緒に完了できるかの検証を行います。

ストアドプロシージャの主な目的は、SQLにコンカチネーションを持たないことです。

sprocでは、paramがnullの場合、paramまたはフィールド値を使用するためにisnull文の文字列を使用する傾向があります。

あなたが言うように、それは新しいトリックではありませんが、動作し、毎回新しいSQLを生成するよりもはるかに高速です。それはまた、容易に予測可能な実行計画を有する。

関連する問題