Memorizzazione dei registri sul database mysql

1

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 su new_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.

    
posta celsomtrindade 09.12.2017 - 21:06
fonte

1 risposta

2

Il layout di questa tabella sembra molto simile a quello che ho usato in passato per alcuni progetti diversi, e penso che dovrebbe essere sufficiente. A questo punto, la cosa più grande che probabilmente incontrerai è la giusta quantità di logging (cioè sì, vuoi registrare gli accessi degli utenti, ma probabilmente vorrai anche loggare i tentativi di accesso falliti, e in base al tipo di informazione visibile per amministratori / moderatori / ecc. potresti volere i log di audit trail per semplicemente accedere / leggere determinati tipi di informazioni).

    
risposta data 09.12.2017 - 21:21
fonte

Leggi altre domande sui tag