¿Cómo implementaría un algoritmo de clasificación en mi sitio web para ordenar los datos de la base de datos?

Quiero implementar un sistema de clasificación en un sitio web en el que he estado trabajando y he decidido utilizar el algoritmo Hacker News. Mi razonamiento para elegir este algoritmo es simplemente porque se ha descritoaquí.

Estaba mirando este código de Python (el lenguaje que estoy usando para construir mi sitio) y no podía entender cómo lo implementaría.

def calculate_score(votes, item_hour_age, gravity=1.8):
    return (votes - 1) / pow((item_hour_age+2), gravity)

Dadas las tablas:

posts:
    id | title | time_submitted

votes:
    id | postid | userid | score

¿Cómo sacaría los datos de la base de datos? La solución ideal (la más eficiente) sería construir una consulta MySQL para recuperar las 10 publicaciones principales clasificadas usando el algoritmo. Pero dado que Hacker News lo ha implementado en Arc, me hace pensar que sacan todas las publicaciones y luego las ejecutan a través del algoritmo para clasificarlas.

Reddit también viene a la mente para esto ... Usan un esquema de base de datos no relacional, así que supongo que, como Hacker News, realizan las clasificaciones en su código, no en la base de datos.

¿Cómo implementaría esto?

EDITAR: una publicación puede tener muchos votos, ya que me gustaría registrar qué usuarios votan en qué publicación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta