Saltar al contenido

Soft delete: ¿columna deleted_at o borrar de verdad?

Elías L.

Nivel 3 ·

En mi equipo todo se 'borra' con deleted_at y ya tenemos tablas donde el 70% de las filas están borradas. Todas las consultas tienen que acordarse de filtrar. ¿Cómo lo manejan ustedes?
189 vistas 5 respuestas 2 0

Respuestas 5

  1. Benjamín F.

    Nivel 3 ·

    0 0

    El soft delete tiene sentido cuando necesitás recuperar o auditar. Pero aplicado a todo por defecto termina siendo lo que describís: basura que hay que filtrar siempre.

  2. Gastón L.

    Nivel 3 ·

    1 0

    Alternativa: borrar de verdad y guardar una copia en una tabla de historial o auditoría, con un trigger o desde la app. La tabla principal queda limpia.

  3. Benjamín F.

    Nivel 3 ·

    1 0

    Si mantienen el soft delete, en Postgres un índice parcial (WHERE deleted_at IS NULL) y una vista con las filas activas ayudan mucho.

  4. Fabricio V.

    Nivel 3 ·

    0 0

    Ojo con las restricciones UNIQUE: si un usuario se 'borra' y otro quiere registrarse con el mismo email, el soft delete se lo bloquea. Hay que pensar un índice único parcial.

  5. Jhonatan G.

    Nivel 3 ·

    0 0

    Y con temas de privacidad: si alguien pide que borren sus datos, poner una fecha en deleted_at no es borrar.