Stavo cercando ulteriori informazioni sulla registrazione delle azioni dell'utente sull'applicazione (progetto basato sul web). Ho trovato questa domanda , ma è un altro risposta concettuale, che mi ha aiutato a iniziare con questo.
Ma non so con certezza come costruire questa struttura per il sistema di log e anche come registrare le informazioni. Ovunque la gente dice "registra tutto", ma è abbastanza interessante.
Note: I'm already using HeatMap to gather user navigation information and GoogleAnalytics for other type of information.
Attualmente ho questa tabella sul database e.x .: ap_log
:
id | user_id | action | area | description | old_value | new_value | date
E lo uso in questo modo:
-
azione : numero dell'azione
1: Insert | 2: Update | 3: Delete | 4: other
; - area : area dell'azione, es .: "account" per l'accesso, "indirizzo" quando si aggiunge un nuovo indirizzo, ecc.;
- descrizione : una breve descrizione dell'azione. "Login utente", "Aggiungi nuovo indirizzo";
-
vecchio / nuovo_valore : oggetto serializzato con i dati modificati. Es .: quando l'utente aggiorna l'indirizzo, salvi i vecchi valori sulla colonna
old_value
e le nuove informazioni sull'indirizzo sunew_value
; -
data : data della data del registro
Y-m-d h:m:s
Le colonne azione, area e descrizione sono stringhe che vengono inserite nel database. Ad esempio, chiamo una funzione come questa:
// insertLog(user_id, action, area, description );
insertLog($userId, 1, 'address', 'Add new address');
insertLog($userId, 4, 'account', 'User login');
insertLog($userId, 4, 'account', 'Email sent to recover password');
insertLog($userId, 2, 'account', 'User reset password');
Con questo, sto solo registrando le informazioni che sono memorizzate nel database, come il profilo utente, gli acquisti, l'indirizzo, la gestione degli elenchi, ecc. Questa tabella di database è ok e sufficiente per questo scopo? C'è un modo per migliorare questo? Qualsiasi consiglio è molto gradito.