Ho un'applicazione web scritta in Java, Oracle e AngularJS. Voglio salvare il log in nel database quando l'utente cambia, crea o aggiorna qualcosa.
Ci sono due modi per implementarlo:
1. Controllo delle tabelle tramite trigger
Contro: a livello di database Non ho informazioni utente che apportano modifiche, quindi devo salvare userName in ogni tabella, apporto qualsiasi modifica.
Ad esempio: la mia tabella sarà simile a questa:
my_table {
field_1,
field_2,
...,
userName
)
2. Aggiunta della funzionalità di registrazione degli eventi nelle funzioni API dell'applicazione Web
Ad esempio, quando l'utente cambia i dati devo chiamare entrambe le funzioni: changeObject
e AuditUserChange
.
Oltre a questo, devo aggiungere il trigger sulla tabella per salvare il log di controllo quando qualcuno (specialista del supporto) apporta modifiche direttamente nelle tabelle del database.
Quale strategia dovrei usare? Quale opzione è migliore?