2017-11-03 3 views
0

게시물 피드를 제공하는 API에 대한 웹 서비스를 작업하고 있습니다. 지금은 게시물이 연대순으로 정리되어 있으며 본질적으로 타임 스탬프 인 토큰 앞뒤에 불투명 한 페이지가 매겨집니다. 그러나 연대순 피드에서 알고리즘 피드로 이동하려고합니다. 게시물 점수를 계산하고 데이터의 첫 번째 페이지를 보낼 수는 있지만 페이지에 대한 페이지 매김 방법을 모르겠습니다. 나는 그것을 스냅 샷으로 가정하고 200 개의 정렬 된 포스트 ID를 묶어 토큰에 대한 HMAC 블롭으로 직렬화하지만, 이것은 각 요청에 대한 중요한 오버 헤드입니다. 이런 종류의 페이지 매김을 처리하는 더 좋은 방법이 있습니까?주문이 자주 업데이트되는 피드에 페이지 매김을 적용하는 방법은 무엇입니까?

+0

이것은 실제로 사용자의 특정 요구 사항, 아키텍처, UX, 허용되는 절충 등에 따라 달라집니다. 항목의 순서가 자주 변경되면 페이지 매김은 매우 복잡한 전망이되고 사용자 경험은 크게 다를 수 있습니다. 구현을 처리하기 전에 먼저 사용자 관점에서 어떻게 동작하게 할 것인지 정확하게 결정해야합니다. – Adrian

답변

0

점수를 데이터베이스에 저장할 수있는 경우 색인을 만들어 액세스 할 수 있습니다. 어쨌든 톱 페이지는 빠를 것입니다. order by rating desc limit 50 offset 10000으로 큰 깊이 표준 방식으로 등급을 매김하여 페이지 매김이 필요한 경우 속도가 느려집니다. 여기에서 두 번째 주문 필드 (예 : 타임 스탬프)를 찾을 수 있습니다. 같은 배급의 게시물이 여러 개있는 경우 - 어느 것이 가장 위에 있어야합니까? 이 필드를 정렬 색인에 추가하고 where rating < ..., timestamp <... order by rating, timestamp과 같은 DB 쿼리를하십시오.

평점을 다시 계산하는 경우 post_id, rating과 같은 별도의 테이블에 저장하는 것이 좋습니다. 이 테이블에 post_id s를 쿼리하십시오. 그러면 테이블이 빠르며 전체 테이블을보고 그 테이블에 게시물을 결합해야합니다.

관련 문제