0

私はモバイルAndroidアプリケーションを構築しており、ユーザーは自分の周りの最も近い場所を見つけることができ、これらの場所を表示すると、詳細を表示したり、評価したりすることができます。これに加えて、彼らは地図に新しい場所を追加することができます。偽のスポットを追加する可能性をできるだけ低くしたいので、偽のスポットのもう1つのレイヤーセキュリティである評価システムを実装したいと思います。

データベーステーブルをどのように設計すればよいかわかりません。今私は持っているだけです:

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

評価列には、1、2、3、4、5の値のみが許可されます。

評価の合計を維持するために他に何が必要ですか?

テーブルを設計した後。平均評価を計算し、評価に基づいて削除できるようにするための最も適切な方法を知りたいです。問題は、スポットの投票数が1で、評価が1で100%負の場合、スポットの投票数が100で90票、1で10票、10票で5の場合、悪いと見なされることです。悪化したと見なしてから削除する必要があります。これに対抗するにはどうすればよいですか?

4

2 に答える 2

0

これを行う方法はたくさんあります。より複雑なトレンド監視システムは投票をバッファリングし、過去1日、1時間、1分などのレートを調べます。

ただし、単純なシステムの場合は、総投票数と平均評価を確認できます。あなたは合計を気にしないかもしれません(そしてあなたはとにかく他の2つからそれを得ることができます)。

評価を更新するには:

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

それらを削除する場合は、最小投票数(合計)のしきい値を設定してから、平均評価に基づいて削除する必要があります。使用レベルによっては、1つの悪い投票ではおそらく十分ではないと思います。

その他の回答:PHP/MySQL-「最高評価」のアルゴリズム

于 2013-03-07T22:48:29.153 に答える
0

場所のIDとレビューを送信するユーザーのIDの外部キーを含む別のテーブルを作成すると便利です(もちろん、評価もあります)。このようにして、ユーザーは後でレビューを編集できます。

于 2013-03-08T00:40:51.720 に答える