Question

Je l'ai cherchée dans les algorithmes de popularité utilisés sur des sites tels que Reddit , Digg et même Stackoverflow .

algorithme 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

Je l'ai toujours effectué simples commandes dans SQL, je me demande comment je devrais traiter avec une telle commande.

Faut-il être utilisé pour définir une table, ou pourrais-je construire un SQL avec le donneur d'ordre dans la formule ( sans nuire à la performance )?

Je me demande aussi, s'il est possible d'utiliser des algorithmes de commande multiples à différentes occasions, sans encourir des problèmes de performances.


J'utilise Django et PostgreSQL.

L'aide serait grandement appréciée! ^^

Était-ce utile?

La solution

Vous devez mettre en cache votre cote de popularité dans une colonne propre et le mettre à jour lorsque les valeurs sous-jacentes changent. Vous devez configurer également un index de base de données sur cette colonne. Ensuite, si vous mettez en cache également le résultat de vos requêtes les plus courantes, vous avez pris des mesures les plus efficaces pour l'exécution de vos requêtes popularité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top