流行算法-SQL/Django

流行算法-SQL/Django,sql,django,postgresql,django-orm,popularity,Sql,Django,Postgresql,Django Orm,Popularity,我一直在研究诸如Reddit、Digg甚至Stackoverflow等网站上使用的流行算法 Reddit算法: t = (time of entry post) - (Dec 8, 2005) x = upvotes - downvotes y = {1 if x > 0, 0 if x = 0, -1 if x < 0) z = {1 if x < 0, otherwise x} log(z) + (y * t)/45000 t=(入职时间)-(2005年12月8日)

我一直在研究诸如RedditDigg甚至Stackoverflow等网站上使用的流行算法

Reddit算法:

t = (time of entry post) - (Dec 8, 2005)
x = upvotes - downvotes

y = {1 if x > 0, 0 if x = 0, -1 if x < 0)
z = {1 if x < 0, otherwise x}

log(z) + (y * t)/45000
t=(入职时间)-(2005年12月8日)
x=上升票-下降票
y={1如果x>0,0如果x=0,-1如果x<0)
z={1如果x<0,否则x}
对数(z)+(y*t)/45000

我一直在SQL中执行简单的排序,我想知道应该如何处理这种排序

应该用它来定义一个表,还是我可以用公式中的顺序构建一个SQL(而不影响性能)

我还想知道,是否有可能在不同的场合使用多个排序算法,而不会导致性能问题


我正在使用Django和PostgreSQL


非常感谢您的帮助!^^

您应该在自己的列中缓存您的受欢迎程度评级,并在基础值发生变化时进行更新。您还应该在该列上设置数据库索引。如果您同时缓存最常见查询的结果,您就可以采取最有效的措施来提高受欢迎程度查询的性能es.

@stefanw我不得不第二次阅读你的答案。谢谢stefan,我想这是正确的选择。通过SQL进行排序或设置将非常复杂。:)