Attualmente voglio strutturare una tabella di tracciamento / cronologia come questa:
- PrimaryKey - ID
- AltroTableId - fk
- fieldName: nome del campo da tracciare
- OldValue
- NewValue
- Nome utente
- CreateDateTime
Quindi sostanzialmente voglio avere una tabella che segua la cronologia di un'altra tabella, memorizzare il nome della colonna del campo modificato con il nuovo e il vecchio valore. La mia domanda è: qualcuno può creare buchi in questo? Inoltre, qual è il modo più semplice per garantire che nella colonna fieldName sia inserito solo un nome di colonna dalle tabelle di cui tiene traccia? Attualmente le mie opzioni sono avere un enum nel servizio che sto costruendo, o creare un'altra tabella di stato e rendere fieldName un fk. Qualche idea migliore?
Modifica obiettivo: al momento ci sono solo 2 campi che ci interessa monitorare. Un campo verrà mostrato su una pagina Web per visualizzare la cronologia, l'altro campo sarà accessibile solo da un dipartimento e avranno accesso a una vista del database che potrebbero interrogare. Avrebbero cercato solo questo campo per ottenere informazioni su chi ha cambiato il campo e cosa fare. Questo è il motivo per cui volevamo impostarlo dove un campo di database definisce la colonna della tabella anziché avere una copia esatta della cronologia dei record della tabella. Vogliamo solo tenere traccia di due campi con la possibilità di aggiungere o rimuovere campi in futuro.
Grazie!