1
我正在開展一個項目,並且遇到了一個邏輯問題。如果投票沒有降低聲譽,我該如何避免聲譽增加?
我們的項目是一個問答網站。與StackOverflow完全一樣。問題是關於投票系統。所有的政策都酷似SO (每個downvote -2
代表,對問題+5
每個給予好評,在回答+10
和等)
好吧,假設這樣的:用戶具有1
代表,他問了一個問題。他的問題贏得了1次倒退。我的觸發器將處理聲譽:
UPDATE users SET reputation = GREATEST(reputation - 2, 1) WHERE id = new.user_id
所以他的名氣的數量將仍然1
。現在,如果downvote收回,這觸發會增加他的名聲:
UPDATE users SET reputation = reputation + 2 WHERE id = new.user_id
所以他的名氣的數量將是3
(這不應該是)。這是一個合乎邏輯的問題。有什麼想法我該如何處理?或者SO如何處理?
也許做一件事是聲望有真實的數字,並且顯示器會顯示1,如果真正的代表低於...但是,這將導致有時用戶不得不獲得超過1代表得到2 ... –
@MartinVerjans我認爲關於你的想法已經......這不是什麼,但事實並非如此對我很好。 thx –
您可以將實際值存儲在表中,並在檢索值時使用最大的函數。 – maraca