MVC アプリケーションでは、検索コントローラー ( /search/all/query
) を次のように実装しています。
クエリに対してさまざまなタイプの完全に一致するページがあるかどうかを確認し、ある場合はそれらにリダイレクトします (例:
/some-other-controller/view/query
)。/search/results/query
完全に一致するものがない場合は、ユニオン データベース クエリを介して、可能なオプション ( ) を一覧表示する検索結果ページにリダイレクトされます。
これは非常にうまく機能しますが、次の理由から「間違っている」と感じています。
完全一致の場合、完全一致を知るために少なくとも 1 つの DB クエリを作成し、次にそのコントローラーから別の DB クエリを作成して実際にそのビューを生成します。
完全に一致するものがない場合は、いくつかの DB クエリを作成して完全に一致するものがないことを判断し、
search/results/
関数/ビューに対して別のクエリを作成します。
リダイレクトに焦点を当てたこのソリューションは、いくつかの作業を行ってから、重複する作業を行う必要があるアプリの別の部分に「バックを渡す」ため、不器用で非効率的であることが懸念されます。
私の質問:
- 上記のリダイレクトは、実際にこの状況に対する賢明な解決策ですか?
- この状況にアプローチするより良い方法はありますか?