Pregunta

Tengo una aplicación de base de datos, quiero permitir que el usuario restaure los registros eliminados de la base de datos, como en Windows tenemos la Papelera de reciclaje para archivos. Quiero hacer lo mismo pero para los registros de la base de datos. Supongamos que tengo muchas tablas relacionadas. que tienen muchos campos.

Editar:

digamos que tengo las siguientes estructuras:

Tabla de informes

  • Clave principal de RepName
  • InformeDatos

tabla de usuarios

  • clave primaria de identificación
  • Nombre

tabla de informes de usuario

  • Clave principal de RepName
  • Clave principal de ID de usuario
  • Esta borrado

Ahora, si pongo el campo isdeleted en la tabla UserReports, el usuario no puede volver a agregar el mismo registro si lo marcó como eliminado, porque el registro ya está y esto provocará una duplicación.

¿Fue útil?

Solución

Nota: siempre uso de clave principal sustituto

.

Añadir una columna de marca de tiempo 'deleted_at'. Cuando el usuario elimina la entrada puso en su lugar el tiempo actual. Hacer esta parte clave de su restricción.

En cada consulta recuerde que debe buscar sólo los registros que tienen nulo en deleted_at campo.

Algunos marcos de referencia (como ActiveRecord) hacen que sea trivial para hacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top