sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo implementar el bloqueo pesimista en una aplicación web php/mysql?

Debe implementar un campo LOCKDATE y LOCKWHO en su tabla. Lo he hecho en muchas aplicaciones fuera de PHP/Mysql y siempre es igual.

El bloqueo finaliza cuando ha pasado el TTL, por lo que podría hacer una resta de fechas usando NOW y LOCKDATE para ver si el objeto ha estado bloqueado durante más de 30 minutos o 1 hora, como desee.

Otro factor es considerar si el usuario actual es el que bloquea el objeto. Por eso también necesitas un LOCKWHO. Puede ser un user_id de su base de datos, un session_id de PHP. Pero manténgalo en algo que identifique a un usuario, una dirección IP no es una buena forma de hacerlo.

Por último, piense siempre en una función de desbloqueo masivo que simplemente restablezca todos los LOCKDATE y LOCKWHO...

Saludos