2012-06-11 2 views
0

사용자가 upvoted 또는 downvoted 수있는 게시물을 제출하는 웹 사이트가 있습니다.mysql에서 총 포인트를 업데이트하는 방법

현재 모든 사용자의 총 포인트는 저장되지 않습니다.

가장 좋은 방법은 무엇입니까? Reddit 또는 StackOverflow와 같은 사이트는 어떻게합니까?

누군가가 게시물에 투표 할 때마다 총 사용자 점수를 더하거나 뺄 것입니다.

+0

당신이 이것에 관해 갈 수있는 많은 방법이 있으며, 그것들 모두가 올바른 주장을 할 수 있습니다. 어떻게 작동 시키길 원합니까? – afuzzyllama

답변

0

SQL의 방법에 참여해야하고, 각 사용자에 대한 캐시를 무효화 새 투표를하거나 데이터베이스에 총 수를 저장하고 upvote 또는 downvote가 총계를 업데이트하는 트랜잭션으로 실행되는지 확인할 수 있습니다.

캐시를 사용하는지 아니면 여분의 테이블을 사용하여 MySQL을 사용하는지 (귀하의 users 테이블에 넣는 것은 권장하지 않음)는 사이트가 얼마나 큰지, 투표로 무엇을하고 싶은지에 따라 다릅니다.

0
모든 사람을 저장할 경우는 여러 가지 방법 중 하나를 수행 할 수 있습니다

은 하디 브 그러나에 의해 진술된다 유래처럼 upvoted 정보는 누군가가 다음 upvote에 때 당신의 두 테이블을 의미 게시물을 upvoted 사용자를 저장할 다른 지금

POST          Upvote 
Id  POST        Id  User_id 
  1. 해야 저장 게시물의 ID와 두 개의 테이블을 만들 테이블 Upvote 테이블에 새 레코드를 추가하면 POST 테이블의 id가 참조됩니다. 데이터를 검색 할 때 사용자가 벌고 때
  2. 당신은 이 왼쪽 당신은 모든 게시물을 통해 사용자 당 투표의 합계의 결과를 캐시 할 수
관련 문제