Sto sviluppando una webapp con utenti e ruoli e devo tenere traccia di tutte le modifiche apportate, in modo da sapere quando e chi ha cambiato un ruolo utente.
Ho la mia tabella utente:
CREATE TABLE user(
user_id,
name
);
E la mia tabella user_role (un utente può avere molti ruoli):
CREATE TABLE user_role(
user_id,
role_id
);
Ho 2 potenziali approcci per gestirlo:
-
Aggiungi alcuni attributi alla tabella
user_role
, quindi sarebbe qualcosa di simile aCREATE TABLE user_role( user_id, role_id, change_date, changed_by, ..... );
Con questo approccio, ogni volta che viene modificato un ruolo utente, viene creata una nuova voce.
-
Avere una nuova tabella:
CREATE TABLE user_role_historic( user_id, role_id, change_date, changed_by .... );
So che (penso) entrambi gli approcci potrebbero funzionare, ma non riesco a decidere quale sia il migliore. Qualcuno può aiutarmi?