es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualiza la entidad después de la aprobación del administrador.

Tengo una entidad y tiene un enum de estado, PENDING y APPROVED. Cada vez que el usuario quiera crear esta entidad, debe ser aprobada por el administrador y luego cambia el estado y es visible en otros puntos finales. Me gustaría añadir la posibilidad de actualizar algunos campos de esa entidad pero no persistirlos hasta que sean aprobados. Por ejemplo, cuando tenemos una entidad con el nombre A y es aprobada, debería ser visible con el nombre A, pero cuando quiera actualizar su nombre para que sea B, entonces aún debería ser visible con el nombre A hasta que sea aprobada, luego debería tener el nombre B. ¿Tienes alguna idea de cómo implementar este tipo de enfoque? ¿Necesito una tabla de base de datos separada o algo así?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para implementar este tipo de enfoque, podrías añadir un campo adicional a tu entidad llamado “pendingChanges”.

    Cada vez que un usuario actualice la entidad, almacenarías los nuevos valores en este campo “pendingChanges” en lugar de actualizar los valores reales de la entidad.

    Luego, cuando el administrador apruebe los cambios, copiarías los valores de “pendingChanges” en los campos reales de la entidad y actualizarías el estado a “APROBADO”.

    Para manejar el escenario en el que el usuario actualiza la entidad varias veces antes de que los cambios sean aprobados, podrías crear una tabla separada para almacenar los cambios pendientes de cada entidad, en lugar de utilizar el campo “pendingChanges” directamente en la entidad misma.

    Esto te permitiría rastrear fácilmente todos los cambios pendientes de cada entidad y aplicarlos en el orden correcto cuando sean aprobados.

    En general, este enfoque debería permitirte lograr el comportamiento deseado sin tener que crear una tabla de base de datos completamente separada.

Comments are closed.