Blog
Architecture
18 dicembre 202510 min

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.