2011-12-19 10 views
1

例えば、ロンドンでホテルを検索し、250のホテルを最初のページに表示する25のホテルを取得します。各ページでは、ユーザーは価格、名前、ユーザーレビューなどに基づいてホテルを並べ替えることができます。インテリジェントなことは、最初のページの最初の25ページのホテルをデータベースから取得することだけです。ユーザーがページ2に移動すると、次の25のホテルについて別のデータベースクエリを作成し、以前の結果をキャッシュに保持します。旅行ウェブサイトはどのように検索結果の並べ替えを実装していますか?

これはユーザーが1ページ目にあり、25件のホテルを価格順に並べたものですが、ユーザー評価に基づいて並べ替えています。この場合、既にキャッシュに入れられているホテルをキャッシュし、ホテル。どのように実装されていますか?任意の言語(好ましくはPHP)で構築されたものがあるか、複数のクエリを使用してゼロから実装する必要がありますか?

答えて

0

この次のように通常行われる:

クエリはorder byで必須フィールドを実行し、(いくつかのデータベースlimitで)top(page_index + 1) * entries_per_page結果に設定されています。クエリはランダムアクセス行セットを返します(使用しているデータベースライブラリによっては結果セットまたはレコードセットと呼ばれることもあります)。MoveTo(row_index)およびMoveNext()などのメソッドをサポートしています。そこで、MoveTo(page_index * entries_per_page)を実行し、entries_per_page結果を読み込んで表示します。行セットは一般にCountプロパティも提供します。このプロパティは、クエリをフェッチする行の合計数を取得するために呼び出されます(行の最後まで実行された場合はもちろんありません)ので、計算して表示できますユーザーはいくつのページが存在するか。

+0

ありがとうございましたMikeNakis :) – ankit

+0

喜んで助けてください! –

関連する問題