RDBMS(ほとんどの場合MySQLまたはPostgresql)には、投票を計算するときに使用する3つのテーブルがあります。1つ目は、ユーザーがさまざまなレベルのプル(重み)を持つユーザーテーブル、2つ目はアイテムへの投票を記録するテーブル、3つ目はアイテムテーブル自体です。
アイデアは、モデレーター、またはより長く存在しているユーザーは、票を投じるときに、より多くの「重み」を持つべきであるということです。
USER {
id,
weight int,
}
VOTE {
vote int,
user_id,
item_id,
}
ITEM {
id
}
投票数に加えて、ユーザーの投票の重みに基づいてアイテムの投票を計算したいと思います。したがって、ユーザー100と101の両方の重みが1で、スコアが「3」に投票し、重みが10のユーザー102がやって来て「5」に投票した場合、このユーザー102が投じた投票により多くの値を割り当てます。
おそらく、投票を分割するために使用されるすべてのユーザーの合計ユーザーウェイトのような単純なものです。
(user:weight * vote) / sum(user:weight))
おそらく、システム内で最も重みのあるユーザーのパワーを曲線化するために、他の式を使用する必要があります。
ユーザーの力などの3番目の変数を考慮して投票を計算するにはどうすればよいですか?
その母校の場合、どのように体重を計算する必要がありますか?おそらく、すべてのユーザーの合計の重みを合計し、ユーザーの総数で割って、ユーザーに1〜100の重みを与えるために使用できる平均の重みを求めて、作業を容易にすることができます。