Aller au contenu

Base de données

tilttek/progression-bundle
TableUne ligne parCléContenu
tilttek_progression_gainpiste, règle et activitétrack, rule_name, activityle sujet, le membre, le montant, le moment, la saison
tilttek_progression_milestonesujet, piste, jalon et saisonsubject, track, milestone, seasonle membre, le moment, l'activité
tilttek_progression_streak_gesturesérie et activitéstreak, activityle membre, l'unité, le moment
tilttek_progression_streak_freezemembre, série et unitémember, streak, unit—
tilttek_progression_streak_statemembre et sériemember, streakles séries en cours et meilleure, le début de la série, la dernière unité active, le fuseau horaire

ProgressionSchemaListener ajoute les tables au schéma que génère l'ORM pour la connexion configurée. Ainsi, doctrine:migrations:diff écrit leur migration et doctrine:schema:validate ne demande pas de les supprimer.

Les gains, les jalons, les gestes et les unités gelées sont insérés par une instruction qui n'écrit rien quand la ligne existe : ON CONFLICT DO NOTHING sur PostgreSQL, INSERT IGNORE sur MySQL et MariaDB, INSERT OR IGNORE sur SQLite ; ailleurs, une insertion simple, dont la violation d'unicité parvient à l'appelant. Une activité compte ainsi une seule fois, même quand deux processus l'écrivent. Les totaux sont des sommes, jamais des champs. Les dates sont écrites en UTC, à la seconde ; les unités sont des numéros de jour ou de semaine.