Actualmente quiero estructurar una tabla de seguimiento / historial como esta:
- PrimaryKey - ID
- OtherTableId - fk
- fieldName: nombre del campo que sigue
- Valor antiguo
- Nuevo valor
- Nombre de usuario
- CreateDateTime
Entonces, básicamente, quiero tener una tabla que rastree el historial de otras tablas, almacene el nombre de columna del campo modificado con el valor nuevo y antiguo. Mi pregunta es ¿alguien puede hacer agujeros en esto? Además, ¿cuál es la forma más fácil de garantizar que solo se ingrese un nombre de columna de las tablas de seguimiento en la columna fieldName? Actualmente, mis opciones son tener una enumeración en el servicio que estoy construyendo, o crear otra tabla de estado y hacer que fieldName sea un fk. ¿Alguna idea mejor?
Editar objetivo: actualmente solo hay 2 campos que queremos rastrear. Un campo se mostrará en una página web para mostrar el historial, al otro campo solo accederá un departamento y ellos tendrán acceso a una vista de la base de datos que podrán consultar. Estarían consultando solo este campo para obtener información sobre quién cambió el campo y qué hacer. Esta es la razón por la que queríamos establecerlo donde un campo de base de datos define la columna de la tabla en lugar de tener una copia exacta del historial de registros de la tabla. Solo queremos rastrear dos campos con la posibilidad de agregar o eliminar campos en el futuro.
¡Gracias!