Come progettare la logica per memorizzare regole assegnazione distintivi e punti di reputazione agli utenti del sito
-
26-09-2019 - |
Domanda
Nella mia applicazione Web corrente, devo creare un "Punti Esperienza & distintivi motore" in qualche modo simili a SO. Tale sistema contiene molte regole e ogni regola è associata a qualche attività degli utenti predefiniti (come la vista domanda, domanda votazione, ecc).
Quello che sto cercando di capire la soluzione per:
- Conservare tutte le regole in tabelle di database (quasi ogni regola include varie condizioni). possiamo fare questo?
- per far combaciare ogni azione dell'utente con le regole salvate in tabelle db e assegnare associati punti reputazione e distintivi.
- Controlla se l'utente già ottenuto il premio al valore di soglia (per esempio non di voti, visualizzazioni), definiti nella norma.
- eseguire determinate azioni come promuovere l'utente, informare l'utente, l'utente divieto definito alcune regole.
- Fornire un interfaccia utente per suggerimenti o l'applicazione per gestire (aggiungere nuovi / modificare / cancellare) le regole di applicazione.
Eventuali suggerimenti sarebbe apprezzato?
Soluzione
Database non sembra essere lo strumento appropriato per questo requisito. Sembra che è necessario implementare tale logica nel livello di applicazione. Naturalmente, alcuni valori dei parametri possono provenire da file di configurazione.
Un modo se questo è ciò che realmente vuole veramente fare, è quello di avere variabili (ad esempio le viste, voti) definiti in colonne. L'uscita il badge assegnato o il punto di reputazione può anche essere colonna ma la funzione di altre colonne.
così tavolo sarà simile:
badgeId_ _ badgeName _ viste __ voti
1 _ ____ argento _ ____ 10 _ ___ 2
2 _ ____ oro _ __ _ 100 _ __ _10