답장을 보내 주셔서 감사합니다. 그래, 다형성 가능한 모델을 만드는 것이 길이다. 그러나 나는 더 완전한 답을 추출하려고 시도하고 있었다.
예를 들어 여기까지 제가 생각한 바가 있습니다. 이 시나리오에서는 여러 클래스 (Article, Question, Product)에 묶일 수있는 투표 가능 클래스입니다.
투표 테이블 : id : 정수, 투표 : 부울, voteable_type : string (투표중인 클래스의 이름), voteable_id : 정수 (투표중인 클래스의 ID), voter_id (사용자 투표의 ID).
이제 등록을 요구하지 않고 사용자 당 투표 수를 제한해야합니다. 따라서 voter_id는 사용자의 IP 주소와 user_agent를 포함하는 복합 요소가 될 수 있습니다. 이것은 내가 아이디어에 개방되어있는 곳입니다. 수집 된 IP 주소가 법인 프록시 등에서 오는 경우 반드시 고유하지는 않으므로 사용자 에이전트의 도움이 필요합니다. 그러나 여전히 두 명의 사용자가 동일한 IP 및 사용자 에이전트 문자열을 가질 수있는 경우가 있습니다. 또한 브라우저가 요청 헤더에 정보를 보내지 않으면이 정보를 얻을 수 없을 수도 있습니다. 즉, 일부 사용자는 단순히 투표하지 않을 수 있습니다 ... 또한 IP는 스푸핑 될 수 있습니다.
또 다른 가능성은 쿠키를 사용하는 것이지만, 쿠키 또는 스크립트 히트를 삭제하여 특정 콘텐츠에 대한 투표를 급상승시키려는 사용자로부터 남용을 유도한다고 생각합니다. 여기서 user-agent를 확인하는 것이 도움이되지만 스크립트를 통해 사용자 에이전트를 쉽게 위장 할 수 있습니다.
아마도 완벽한 해결책은 없지만 다른 사람들이이 문제에 어떻게 접근했는지 궁금합니다. 나는. 해커 뉴스 및 심지어 stackoverflow.
프로그래밍과 관련이없는 것은 무엇입니까? –