나는 투표를 토글하고자하는 항목의 키와 투표를하는 사용자의 키를 받아들이는 toggleVote
방법을 제안합니다.
나는 또한 기본적으로 두 개의 필드 포함, 투표를 기록하는 테이블을 추가하는 게 좋을 것 : 항목이 존재하는 경우
"keyOfUserVoting", "keyOfItemBeingVotedOn"
당신은 키가 일치 매우 질의을 간단하게 할 수 있습니다 그 방법을하고, 다음 당신은 그 항목에 투표 한 사용자를 압니다. (Query where keyOfUserVoting = 'param1' and keyOfItemVoted='param2'
, if result != None
는, 다음은 사용자가 투표를 의미)가 toggleVote() 메소드에 대한
경우는 매우 간단 수 :
toggleVote(keyOfUserVoting, keyOfItemToVoteOn):
if (queryResultExists):
// delete this record from the 'votes' table
else:
// add record to the 'votes' table
당신이에 추적하는 데 대해 걱정할 필요가 없습니다 그 방법 사용자가 투표 한 횟수에 대한 개별 기준.
또한이 방법을 사용하면 항목에 몇 개의 득표가 있는지 알아 보려면 에 신속하게 다른 쿼리를 수행 할 수 있습니다. 다시 GAE를 사용하면 매우 빠릅니다. 이 설정에서
, 당신은 신속하게 ... 사용자가 하나 개의 항목 (
count where userKey = value and where itemKey = value
), 또는 얼마나 많은 시간을 사용자가 전체 시스템 (
count where userKey = value
)에 투표 한 투표 횟수를 알 수
마지막으로 최고의 신뢰도를 얻으려면 특히 사용자 또는 투표 된 항목에 대해 다른 작업을 수행 할 경우 트랜잭션에서 toggleVote()
메소드로 업데이트를 래핑 할 수 있습니다.
희망이 도움이됩니다.
지금까지 해본 내용을 보여줄 수 있습니까? – Conner
글쎄, 첫 번째 단계는 이미 투표했을 경우 버튼을 비활성화하는 것입니다. 다음 단계는 어쨌든 서버 측 로직을 조심스럽게 추가하는 것입니다. – voithos
@Conner 실제로 내 컴퓨터에 있지는 않지만 오늘 오후에 현재 코드를 올릴 수 있습니다. – clifgray