Foros del Web » Programando para Internet » PHP »

Borrar registros despues de tiempo

Estas en el tema de Borrar registros despues de tiempo en el foro de PHP en Foros del Web. Hola quiero hacer que cuando se cambie un valor de una fila esta se borre después de algún tiempo, por ejemplo después de una semana. ...
  #1 (permalink)  
Antiguo 11/05/2013, 02:28
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Borrar registros despues de tiempo

Hola quiero hacer que cuando se cambie un valor de una fila esta se borre después de algún tiempo, por ejemplo después de una semana.

Como?
  #2 (permalink)  
Antiguo 11/05/2013, 02:33
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Borrar registros despues de tiempo

Una forma es guardando la fecha de modificación de ese valor y un trigger que borre el registro. La segunda opción es un cronjob que borre el registro. Siempre deberás guardar la fecha de modificación para hacer una comparación.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 11/05/2013, 16:08
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Borrar registros despues de tiempo

Cita:
Iniciado por repara2 Ver Mensaje
Una forma es guardando la fecha de modificación de ese valor y un trigger que borre el registro. La segunda opción es un cronjob que borre el registro. Siempre deberás guardar la fecha de modificación para hacer una comparación.
Salu2
Hola, se que es un cronjob pero se pueden crear cronjobs pues cuando el usuario cambie el valor del registro ya que si no, pense en crear uno que se ejecute en un dia de la semana y comprueba la fecha pero puede que si el dia que se comprueba es lunes y el usuario cambio el valor en sabado, no habria pasado el tiempo si es por ejemplo 1 semana.

Lo del trigger no se que es??
  #4 (permalink)  
Antiguo 11/05/2013, 16:46
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Borrar registros despues de tiempo

Cita:
Lo del trigger no se que es??
http://dev.mysql.com/doc/refman/5.0/...e-trigger.html

Creo que ahi te quedara muy claro que es y para que sirve. A mi me parece buena idea para lo que quieres hacer.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 12/05/2013, 05:45
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Borrar registros despues de tiempo

Cita:
Iniciado por cuasatar Ver Mensaje
http://dev.mysql.com/doc/refman/5.0/...e-trigger.html

Creo que ahi te quedara muy claro que es y para que sirve. A mi me parece buena idea para lo que quieres hacer.
Gracias, ya se lo que es pero creo que tampoco me sirve ya que se activa cuando el usuario cambie el valor del registro y no después de algún tiempo. Por lo menos al leer lo de esto me entere.

Voy a decir mas claro lo que quiero hacer. Un ejemplo:

Hay una pagina web en forma de juego en la que puedes comprar items para tiempo. Cuando el usuario compra un item que es para una semana . Después de esta semana que desaparezca. Como?
  #6 (permalink)  
Antiguo 12/05/2013, 07:38
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Borrar registros despues de tiempo

Pues yo creo que con triggers puedes hacer algo, el tema es como lo enfocas.

Cada vez que se logea el usuario por ejemplo se puede comprobar que los objetos no han caducado. Si se modifica la fecha de la compra la comprobacion sera la misma ya que se esta comprobando cuando el usuario se logea.

No conozco en profundidad mysql pero estoy viendo que existen por ejemplo los eventos: [URL="http://dev.mysql.com/doc/refman/5.1/en/create-event.html"]http://dev.mysql.com/doc/refman/5.1/en/create-event.html[/URL]

Quizas te pueda servir de algo.

Saludos.

Última edición por jarios; 12/05/2013 a las 07:41 Razón: No me reconoce el link
  #7 (permalink)  
Antiguo 12/05/2013, 08:02
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Borrar registros despues de tiempo

Cita:
Iniciado por jarios Ver Mensaje
Pues yo creo que con triggers puedes hacer algo, el tema es como lo enfocas.

Cada vez que se logea el usuario por ejemplo se puede comprobar que los objetos no han caducado. Si se modifica la fecha de la compra la comprobacion sera la misma ya que se esta comprobando cuando el usuario se logea.

No conozco en profundidad mysql pero estoy viendo que existen por ejemplo los eventos: [URL="http://dev.mysql.com/doc/refman/5.1/en/create-event.html"]http://dev.mysql.com/doc/refman/5.1/en/create-event.html[/URL]

Quizas te pueda servir de algo.

Saludos.

Hola esto del logueo esta bien pero si es algo que tiene que cambiar para algunos minutos. El usuario no se logueara de nuevo. Tengo que comprobar lo en cada pagina, esto seria demasiada carga o me confundo de la carga?

O sea si hay 10 items cada uno con tiempo y a su vez hay otros productos o cosas para menos tiempo tendría que comprobar cada uno en cada pagina.
  #8 (permalink)  
Antiguo 12/05/2013, 09:46
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Borrar registros despues de tiempo

Cita:
Hola, se que es un cronjob pero se pueden crear cronjobs pues cuando el usuario cambie el valor del registro ya que si no, pense en crear uno que se ejecute en un dia de la semana y comprueba la fecha pero puede que si el dia que se comprueba es lunes y el usuario cambio el valor en sabado, no habria pasado el tiempo si es por ejemplo 1 semana.
Pues es que no tienes que limitar el cronjob a una vez a la semana. Si lo ejecutas a diario puedes revisar aquellos registros que tienen mas de una semana despues de haber sido modificados (usando DATEDIFF si mal no recuerdo y lo comparas con NOW). No vale la pena hacerlo cada dos o 3 horas porque no tiene sentido pero hacerlo una vez al día para tu necesidad especifica seria mas que suficiente. Igual ejecutalo en horas de la noche cuando los servidores estan "descansando" y se supone que tienen menos "trabajo".

Son ideas, tu escoge la que mejor se adapte a tu necesidad.
__________________
Blog de humor http://elcuasatar.net63.net/
  #9 (permalink)  
Antiguo 12/05/2013, 10:29
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Borrar registros despues de tiempo

Cita:
Iniciado por cuasatar Ver Mensaje
Pues es que no tienes que limitar el cronjob a una vez a la semana. Si lo ejecutas a diario puedes revisar aquellos registros que tienen mas de una semana despues de haber sido modificados (usando DATEDIFF si mal no recuerdo y lo comparas con NOW). No vale la pena hacerlo cada dos o 3 horas porque no tiene sentido pero hacerlo una vez al día para tu necesidad especifica seria mas que suficiente. Igual ejecutalo en horas de la noche cuando los servidores estan "descansando" y se supone que tienen menos "trabajo".

Son ideas, tu escoge la que mejor se adapte a tu necesidad.
Tampoco sirve ya que para 8 minutos...

Lo puedo ejecutar cada vez que el usuario entre en una pagina. Le vez algún inconveniente ?
  #10 (permalink)  
Antiguo 12/05/2013, 11:22
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Borrar registros despues de tiempo

Ya lo que planteas aqui es un problema mas de cargas como tu dices.

Puedes enfocarlo desde 3 modos segun como yo lo veo:
1. O bien ejecutas una tarea minuto a minuto que compruebe la caducidad.
2. Te las apañas para que algun codigo te cree una tarea cuando se va a vencer ese periodo y si se modifica solo tendras que modificar el tiempo de ejecucion de la tarea.
3.Haces la comprobacion cada vez que se ejecuta un cambio de pagina como tu dices.

Es lo que se me ocurre sobre la marcha. No sabria decirte si una u otra va a consumir mas o menos cpu lo cual es tu pregunta.

Espero que el resto al menos sirva para que soluciones algo.

Saludos.
  #11 (permalink)  
Antiguo 12/05/2013, 11:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Borrar registros despues de tiempo

Creo que antes de continuar deberías explicar para que quieres tanta "precisión", o al menos eso das a entender para tener que estar verificando cada X minutos, tal vez lo que pretendes hacer no es necesaria tanta precisión....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 12/05/2013, 14:23
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Borrar registros despues de tiempo

Cita:
Iniciado por Nemutagk Ver Mensaje
Creo que antes de continuar deberías explicar para que quieres tanta "precisión", o al menos eso das a entender para tener que estar verificando cada X minutos, tal vez lo que pretendes hacer no es necesaria tanta precisión....
Un jugador puede "pelear" cada cierto tiempo (8 minutos) . Pero a su vez necesito que se muestre siempre osea arriba en la pagina y no solo cuando intenta "pelear"
  #13 (permalink)  
Antiguo 12/05/2013, 14:38
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Borrar registros despues de tiempo

Es ilógico lo que pretendes hacer con un lenguaje interpretado, especialmente en un servidor web, no puedes tener al servidor pendiente de una variable en una DB para que este únicamente se muestre al usuario en su interfaz, eso es derrochar recursos, ahora, no se cuantos usuarios tengas, pero llegará el momento en que los recursos del servidor no sean suficientes, si solo pretendes mostrar datos en tiempo real solo para mantener los datos visibles deberás clonar la misma lógica en javascript para tener un contador en tiempo real en el navegador sin tener al servidor trabajando de mas, cuando en verdad se vayan a utilizar esa información entonces haces que el servidor calcule lo necesario, así evitas estar gastando recursos a lo tonto, aparte, has pensado en los usuarios inactivos? tu servidor gastará recursos igual en inactivos que activos...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: registros, tiempo
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 21:46.