Domanda

Sto cercando di capire come si potrebbe creare una banca dati e / o modello al fine di gestire i vari badge. Consente di prendere lo Stack Overflow distintivi come esempio. Ci sono regole diverse per ogni e alcuni potrebbe essere solo una diversa variabile (come 10 commenti vs 100 commenti).

La mia domanda è come si fa a impostare questo tipo di validazione / verifica all'interno di un'applicazione? Nel caso in ogni badge avere il proprio metodo?

È stato utile?

Soluzione

Essendo che corre così fuori di SQL Server, SQL Server Agent per eseguire periodicamente le statistiche tabulare. La stored procedure (s) nel lavoro sarebbe inserire in una / tavolo badge ecc quando i criteri vengono soddisfatti.

I trigger sarebbe un'altra opzione, ma la loro esecuzione non può essere ritardata per l'ambito di più utenti.

Altri suggerimenti

Questo è come avrei implementarlo se ho bisogno di:

io preparo un po 'di gestore code (ci sono un sacco di tale software) e scrivere un broker, che elaborerà i messaggi dalla coda.

Ogni volta che si verifica un evento, come ad esempio: Si visualizza un argomento, si è modificato il tuo commento, si è modificato la tua risposta, si è modificato un'altra persona risposta, upvoted, etc etc - si raccolgono uno più messaggi, con la descrizione dell'evento. Sì, sarà davvero quantità enorme di messaggi.

Dopo aver raccolto quella enorme quantità di messaggi -. È possibile avviare un broker che elaborerà i messaggi di pianificazione o in tempo reale

Con questo schema si potrebbe estendere un broker come badge complesso come si desidera.

immagino un po 'in tempo reale sono calcolati, mentre altri sono calcolate in processi che vengono eseguiti in modo intermittente.

Ad esempio, per il badge che appare quando la vostra risposta ottiene 10 upvotes, che potevano essere calcolati in tempo reale con poco calo di prestazioni.

D'altra parte, per il badge che controlli se si colpisce il tappo reputazione numero di volte al giorno di volte, si sarebbe probabilmente vuole fare che come una sorta di processo batch, dal momento che si controlla solo alla fine di ogni giornata.

La principale preoccupazione è quella di mantenere le cose in esecuzione veloce. stack overflow ottiene migliaia (forse decine di migliaia) di domande al giorno, probabilmente con centinaia di migliaia di commenti. Tutto ciò che non è banale per calcolare deve essere eseguito in un processo separato. Mantiene la funzionalità di base stretto, limitato, e pulito, consentendo elevate prestazioni. Esecuzione di calcoli complessi nei processi al di fuori del sistema di invio di base permette di farlo senza compromettere la capacità degli utenti di utilizzare il sito. Se un'attività è sufficientemente complesso, si può scalare orizzontalmente semplicemente eseguendo lo stesso processo su più macchine.

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