Schema di gamification PostgreSQL: 5 tabelle, 12 livelli
La gamification sembra semplice in superficie ed esplode in complessità non appena la si modella. Per TAMSIV, volevo un sistema completo.
Uno schema dedicato
Lo schema gamification è separato da privat e collaborative. Isolamento delle responsabilità: le proprie policy RLS, le proprie funzioni RPC.
Le 5 tabelle
- user_stats: punti totali, livello, streak corrente/max, ultima attività
- user_badges: relazione many-to-many utenti/badge, data di ottenimento
- points_history: ogni guadagno di punti loggato per analytics
- daily_challenges: una sfida al giorno per utente
- feed_activity: flusso di attività per il feed sociale
12 livelli progressivi
Soglie: [0, 100, 250, 500, 1000, 2000, 3500, 5500, 8000, 12000, 17500, 25000]. I livelli 1-3 raggiungibili in pochi giorni. Il livello 12 richiede mesi. Oltre, subentra una formula matematica.
Le RPC atomiche
Quando un utente completa un'attività: aggiungere punti, verificare il livello, aggiornare lo streak, verificare i badge, aggiornare la sfida, loggare la cronologia. Tutto atomico tramite funzioni transazionali PostgreSQL.
Gli streak
Gestione dei fusi orari, streak freezes, rilevamento di interruzioni. Lo streak massimo è limitato a 365 giorni — oltre, è dipendenza, non gamification.