Domanda

Ho cercato in algoritmi popolarità utilizzati su siti come Reddit , Digg e anche StackOverflow .

algoritmo 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

Ho sempre eseguito semplice ordinamento in SQL, mi chiedo come dovrei trattare con tale ordinamento.

Dovrebbe essere utilizzato per definire una tabella, o potrei costruire uno SQL con l'ordinamento all'interno della formula ( senza ostacolare le prestazioni )?

Sono anche chiedendo, se è possibile utilizzare più algoritmi di ordinamento in occasioni differenti, senza incorrere in problemi di prestazioni.


Sto usando Django e PostgreSQL.

Aiuto sarebbe molto apprezzato! ^^

È stato utile?

Soluzione

Si dovrebbe memorizzare nella cache il vostro indice di gradimento in una colonna proprio e aggiornarlo quando i valori sottostanti cambiano. Si dovrebbe anche impostare un indice di database su quella colonna. Se poi anche memorizzare nella cache il risultato delle vostre domande rivolte più spesso, hai preso le misure più efficaci per l'esecuzione delle query di popolarità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top