Foros del Web » Programando para Internet » PHP »

Guardar registros borrados

Estas en el tema de Guardar registros borrados en el foro de PHP en Foros del Web. Hola: Antes de escribir he buscado en los foros. El tema es que tengo un sistema de mensajería entre usuarios. Una opción es que borren ...
  #1 (permalink)  
Antiguo 26/10/2004, 03:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Guardar registros borrados

Hola:
Antes de escribir he buscado en los foros.

El tema es que tengo un sistema de mensajería entre usuarios. Una opción es que borren los mensajes que reciben.
Si lo hacen, los mensajes desaparecen, como es natural, de la BD (tabla).

Lo que necesito es que los mensajes borrados pasen a otra tabla en la BD. Es decir, necesito conservarlos sin que el usuario los vuelva a ver (para él ya no existen porque están borrados).

El script de borrar selecciona el/los mensaje/s y lo/s elimina.

Pienso que para conseguir lo que busco habría que hacer que cuando el usuario decide borrar, antes de eliminar el mensaje se hiciera una conexión a la BD con una instrucción para traspasar los datos a la segunda tabla y luego borrarlos de la primera.

¿Creeis que es este el sistema adecuado?.

Como no tengo una idea clara de la función que necesito para el traspaso, os agradecería que me ayudaráis dándome una pista sobre cómo hacerla.

Gracias a todos.

Última edición por javifo; 26/10/2004 a las 03:51
  #2 (permalink)  
Antiguo 26/10/2004, 03:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,
Cita:
Como no tengo una idea clara de la función que necesito para el traspaso, os agradecería que me ayudaráis dándome una pista sobre cómo hacerla.
Lees el contenido del registro (SELECT) e insertas un nuevo registro con esos datos en la tabla nueva (INSERT).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/10/2004, 06:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo usaría un simple "flag" (bandera, estado) para ese campo .. así en lugar de "borrar" sólo haría un UPDATE a ese campo "flag" para pasarlo al estdo "1" (borrado) .. Eso sí, tus consultas SQL tendrían que ser condicionales al "flag" ese por el estado "0" (no borrado) para las consultas que ya haces .. en tu "panel" de administración ahí ves todos los estados (sin condición) o sólo los borrados.

Un saludo,
  #4 (permalink)  
Antiguo 26/10/2004, 06:40
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Si, es la otra opcion. Todo es cuestion del "coste" de cada solucion. Por ejemplo, con el flag el coste esta en que la tabla de mensajes siempre crece en tamaño y en que complicas la consulta (habria que mirar de optimizarla, quizas creando un indice con la flag para acelerar la busqueda por ese campo). Con el otro metodo (mover a otra tabla) tienes el coste de actualizar 2 tablas, la que borras y la que insertas, pero la tabla de mensajes visibles a los usuarios seria mas pequeña y la consulta mas simple.

Supongo que con un bajo porcentaje de mensajes borrados la opcion del flag es mejor (aunque no he hecho pruebas).

Cuestion de probar ambos metodos, a ver cual tiene mejor rendimiento en tu sistema.

Saludos.

PD: Tambien depende de lo que vayas a hacer con los emnsajes borrados. No es lo mismo solo almacenarlos, que acceder a ellos todos los dias para crear informes.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 26/10/2004, 06:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias

¡Excelente!

Muchas gracias.

Buscaba una idea y ya tengo DOS.

La de Cluster parece más inmediata y con la ventaja de que no se necesitan más tablas.

En cambio, la de Josemi tiene la ventaja de que en la tabla original sólo estarían los mensajes "no borrados", siendo más rápida su lectura.

Seguro que ambas son buenas. Probaré y elegiré una.

De nuevo, gracias y saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:21.