2013-03-07 23 views
0

我正在構建移動Android應用程序,用戶可以在其中查找最近的位置,然後在查看這些位置時,可以查看詳細信息並對其進行評分。最重要的是,他們可以在地圖上添加新的地點。我希望能夠降低人們儘可能多地添加假點的機會,所以這就是爲什麼我要實施評級系統,這是另一種假點的層次安全。我應該如何爲我的Android應用程序構建/設計評分系統?

我不知道我應該如何設計我的數據庫表。現在我只有:

Location: name, address, type, terrain, difficulty, lng, lat, rating. 

評級列僅允許值:1,2,3,4,5

還有什麼我需要保持收視率的總和?

設計完表格後。我想知道計算平均評分的最合適方法,然後根據評分將它們刪除。問題是,如果一個點有1票,其評分爲1,這是100%的否定,那麼當一個點的投票數爲100時,90票以1票和10票的票數爲5時,它將被認爲是不好的。當然,第一個應該被認爲更糟,然後被刪除。我該如何解決這個問題?

+0

http://stackoverflow.com/q/1433425/752320 – Geobits 2013-03-07 22:47:07

回答

0

我想說使包含用戶提交審議的位置和ID的ID的外鍵將是有益的一個單獨的表(以及有當然的等級)。這樣用戶可以稍後編輯他們的評論。

0

有很多方法可以做到這一點。更復雜的趨勢監測系統緩衝投票並查看最後一天,小時,分鐘等的速率。

但是,對於一個簡單的系統,您可以查看總票數和平均評分。你可能不關心這個總和(你可以從另外兩個中得到它)。

要更新的評價:

average = ((average*total)+new)/(sum+1); 
total ++; 

當你在刪除它們,你會想設置一個門檻票(總)的最小數量,然後根據平均評分刪除。 1個不良投票可能不夠真實,你認爲有多少,取決於你的使用水平。

對於其他答案:PHP/MySQL - algorithm for "Top Rated"

相關問題