Attualmente voglio strutturare una tabella di monitoraggio / cronologia come questa:
- PrimaryKey - ID
- OtherTableId - fk
- fieldName - nome del campo il suo monitoraggio
- OldValue
- NewValue
- UserName
- CreateDateTime
Quindi in pratica voglio avere una tabella che tracci un'altra cronologia delle tabelle, memorizza il nome della colonna del campo modificato con il nuovo e il vecchio valore. La mia domanda è: qualcuno può fare buchi in questo? Inoltre, qual è il modo più semplice per garantire che solo il nome di una colonna delle tabelle venga inserito nella colonna fieldName? Attualmente le mie opzioni sono di 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: attualmente ci sono solo 2 campi che vogliamo 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 sarebbero in grado di interrogare. Stanno interrogando solo questo campo per ottenere informazioni su chi ha cambiato il campo e cosa fare. Questo è il motivo per cui abbiamo voluto impostarlo dove un campo del database definisce la colonna della tabella piuttosto che avere una copia esatta della cronologia del record della tabella. Vogliamo solo due campi tracciati con le possibilità di aggiungere o rimuovere campi in futuro.
Grazie!