2011-12-19 2 views
1

예를 들어 런던에서 호텔을 검색하고 첫 번째 페이지에 25 개의 호텔이 표시된 250 개의 호텔을 얻습니다. 각 페이지에서 사용자는 가격, 이름, 사용자 리뷰 등을 기준으로 호텔을 정렬 할 수 있습니다. 이제 지능적인 일은 데이터베이스의 첫 페이지에 처음 25 개 호텔 만 가져 오는 것입니다. 사용자가 2 페이지로 이동하면 다음 25 개 호텔에 대해 다른 데이터베이스 쿼리를 만들고 이전 결과를 캐시에 보관합니다.여행 웹 사이트는 어떻게 검색 결과 정렬을 구현합니까?

사용자가 1 페이지에 있으며 가격별로 정렬 된 25 개의 호텔을 확인한 후 사용자 등급에 따라 정렬합니다.이 경우 이미 캐시에있는 호텔을 유지해야하며 추가로 요청해야합니다 호텔. 어떻게 구현됩니까? 거기에 어떤 언어 (선호 php) 또는 우리가 여러 쿼리를 사용하여 처음부터 그것을 구현해야 내장되어 있습니까?

쿼리가 order by에 필요한 필드를 실행하고, (page_index + 1) * entries_per_page 결과로 설정 (일부 데이터베이스 limit 단위) top에 다음과 같이

답변

0

이 일반적으로 이루어집니다. 이 쿼리는 무작위 액세스 행 집합을 반환합니다 (사용중인 데이터베이스 라이브러리에 따라 결과 집합 또는 레코드 집합이라고도하는). MoveTo(row_index)MoveNext()과 같은 메서드를 지원합니다. 그래서 MoveTo(page_index * entries_per_page)을 실행하고 entries_per_page 결과를 읽고 표시합니다. 또한 행 집합은 일반적으로 Count 속성을 제공합니다.이 속성은 쿼리가 가져올 행의 총 개수를 얻기 위해 호출합니다 (물론 우리는 그렇지 않습니다). 그래서 계산하고 보여줄 수 있습니다 사용자가 얼마나 많은 페이지가 존재하는지.

+0

감사합니다. MikeNakis : – ankit

+0

도움이되어 기쁩니다! –

관련 문제