Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como implementar o bloqueio pessimista em um aplicativo da web php/mysql?


Você precisa implementar um campo LOCKDATE e LOCKWHO em sua tabela. Já fiz isso em muitas aplicações fora do PHP/Mysql e é sempre da mesma forma.

O bloqueio é encerrado quando o TTL passou, então você pode fazer uma subtração de datas usando NOW e LOCKDATE para ver se o objeto foi bloqueado por mais de 30 minutos ou 1h conforme desejar.

Outro fator é considerar se o usuário atual é quem está bloqueando o objeto. Então é por isso que você também precisa de um LOCKWHO. Isso pode ser um user_id do seu banco de dados, um session_id do PHP. Mas mantenha-o em algo que identifique um usuário, um endereço de ipad não é uma boa maneira de fazer isso.

Por fim, sempre pense em um recurso de desbloqueio em massa que simplesmente redefine todos os LOCKDATEs e LOCKWHOs...

Felicidades