No sabía donde era mejor este tema, si en la sección base de datos o en esta sección de PHP.
Estoy no teniendo problemas pero sí dudas, hasta ahora todo este sistema funciona excelente. Lo que me permite hacer es lo siguiente, desbloquear usuarios que fueron bloqueados de forma temporal hasta x fecha, marcar como desconectados usuarios que ya no hicieron acciones en la aplicación por un periodo de x minutos, eliminar algunos registros de x tabla que ya son demasiado viejos, etc.
Mi función para marcar como desconectados a usuarios que no hicieron acciones por x periodo de minutos por lo que se los considera desconectados:
Código
static function Marcar_Desconectados() { $con = Conectar_BD(nombre_usuario, contrasena); $query = $con->prepare('UPDATE users SET connected = 0 WHERE connected = 1 AND :unix_grace >= unix_activity'); $query->bindValue(':unix_grace', $unix_grace, PDO::PARAM_INT); $query->execute(); }
Cada vez que se realice una petición al servidor, se envía un formulario, se carga una página (por ejemplo se ingresa a index.php), se ejecuta un código php con ajax, etc.. se va a ejecutar la funcion..
Código
x::Marcar_Desconectados();
Realmente no sé si es óptimo considerando muchos usuarios en esta aplicación web. Aunque si eventualmente no hay usuarios que marcar como desconectados, no hay registros viejos que eliminar, no hay usuarios bloqueados temporalmente que desbloquear, es decir ejecutaría estas consultas pero no modificaría nada ni haría ninguna accion DELETE, UPDATE, etcétera.
Aunque estaría haciendo las consultas igual, por eso no estoy seguro.