我的 RDBMS(通常是 MySQL 或 Postgresql)中有三个表,我想在计算选票时使用它们。第一个是用户表,其中用户有不同程度的拉动(权重),第二个是记录他们对项目的投票的表,第三个是项目表本身。
这个想法是,版主或使用时间较长的用户在投票时应该有更多的“权重”。
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))
也许我应该使用其他公式来曲线系统中权重最大的用户的力量。
考虑到用户的权力等第三个变量,我如何计算投票?
对于那件事,我应该如何计算重量?也许我可以将所有用户的总权重相加,然后除以用户总数来找到一个平均权重,我可以用来给用户一个介于 1 到 100 之间的权重,这样更容易使用。