Sto sviluppando questo Achievement System e deve avere un CRUD, che ammette l'accesso per creare nuovi risultati e le sue regole. Ho bisogno di aiuto con la struttura dei dati CRUD di Achievement.
Esempio di regole
Medal one : devi completare 5 corsi con un punteggio di almeno 90
Medal two : devi completare due corsi specifici con un punteggio di almeno 85
Medaglia tre : deve essere il primo 5 nella classifica generale almeno una volta
Medaglia quattro : deve avere più di 5000 punti
Lo memorizzerò in un database SQL e ho pensato a due opzioni.
Opzione A
Crea una tabella con poche colonne come sotto per memorizzare quelle più variabili quando adatto:
- azione
- quantità di azione
- quantità di corso
- punteggio
- id course
- classifica Posizione
- punti
Opzione B
Memorizza che usando JSON o il formato serializzato, quindi tutta la logica di analisi che si trova nel mio codice, al rovescio della medaglia, renderà più complesso interrogare alcune regole (non sono sicuro che avrò bisogno di interrogarlo, ma mi piace essere pronto per ogni evenienza).
Tenete presente che c'è un'alta probabilità che dovrò aggiungere più regole a questo sistema, ecco perché lo sto chiedendo.
Esiste un modo più adatto per farlo, forse uno schema di progettazione, una soluzione nota o qualcosa già creato per questo scenario?