sto implementando un sistema di reputazione StackOverflow-come sul mio testi rap sito spiegazione, Rap Genius:modo migliore per attuare in stile StackOverflow reputazione
- buona spiegazione: +10
- Bad spiegazione: -1
- ha la più spiegazioni su una canzone: +30
la mia domanda è come implementare questa. Nello specifico, sto cercando di decidere se dovrei creare una tabella di reputation_events
per aiutare nel ricalcolo della reputazione, o se dovrei ricalcolare da zero ogni volta che ne ho bisogno.
La tabella di reputation_events
avrebbe colonne per:
- nome (ad esempio, "good_explanation", "bad_explanation")
- awarded_to_id
- awarded_by_id
- awarded_at
Ogni volta succede qualcosa che colpisce la reputazione, inserisco una riga corrispondente in reputation_events
. Ciò facilita il ricalcolo della reputazione e la generazione di una sequenza di eventi leggibili da parte dell'utente che ha generato la reputazione di una determinata persona.
D'altra parte, una determinata azione potrebbe influire sulla reputazione di più utenti. Ad esempio, supponiamo che l'utente A sorpassi l'utente B su una determinata canzone; sulla base dell'obiettivo "Hai le maggiori spiegazioni su una canzone", dovrei ricordare di eliminare l'evento originale di "has_the_most_explanations" di B (o forse aggiungerei un nuovo evento per B?)
Ho trovato questo video eccezionale: http://www.youtube.com/watch?v=Yn7e0J9m6rE –
possibile duplicato di [Come posso creare un sistema di "reputazione" simile a StackOverflow utilizzando Rails?] (Http: // stackoverflow.com/questions/5719050/how-can-i-create-a-reputation-system-similar-to-stackoverflow-using-rails) – Hauleth