有没有更好的方法来确定书店数据库中最受信任的用户?

时间:2012-03-17 07:31:44

标签: mysql sql database

我正在为书店建立一个门户网站。

我希望允许用户将其他用户标记为“受信任”或“不受信任”。

我想通过订购整体信任级别来确定谁是我们的商店最受信任的用户。

以下是一个示例,说明如何计算此信任级别:

我们将计算鲍勃的信任等级......

Bob已被其他100位用户标记为“受信任”,并被20位用户标记为“不信任”。鲍勃的信任等级= 100 - 20 = 80。

我有下表:

Judges(judgerLoginName:VARCHAR(45),judgeLoginName VARCHAR(45),trustLevel SMALLINT)

现在,我的trustRvel为0表示“不信任”,1表示“信任”。

所以,我正在考虑将所有0改为-1,所以我可以做一个简单的事情:

SELECT judgedLoginName, SUM(trustLevel)
FROM Judges
GROUP BY judgedLoginName,
ORDER BY SUM(trustLevel) DESC

但是,我想知道是否有一种同样简单的方法可以从countOfTrusted中减去countOfNotTrusted。你有什么建议?我对数据库开发很陌生,并希望得到任何指导。

2 个答案:

答案 0 :(得分:1)

SELECT judgedLoginName, SUM(IF(trustLevel = 0, -1, 1))
FROM Judges
GROUP BY judgedLoginName,
ORDER BY 2 DESC
  • 检查您的信任级别是否为0,然后添加的值为-1
  • 如果您需要
  • ,请按第二列的顺序添加订单2

答案 1 :(得分:0)

SELECT judgedLoginName, -COUNT(*)+2*SUM(trustLevel)
FROM Judges
GROUP BY judgedLoginName,
ORDER BY 2 DESC

为所有用户提供-1的值,并添加受信任的用户+2,为其生成+1