sql >> Database >  >> RDS >> Mysql

Hoe pessimistische vergrendeling implementeren in een php/mysql-webtoepassing?

U moet een LOCKDATE- en LOCKWHO-veld in uw tabel implementeren. Ik heb dat in veel toepassingen buiten PHP/Mysql gedaan en het is altijd op dezelfde manier.

De vergrendeling wordt beëindigd wanneer de TTL is verstreken, dus u kunt de datums aftrekken met NU en LOCKDATE om te zien of het object langer dan 30 minuten of 1 uur is vergrendeld, zoals u wilt.

Een andere factor is om te overwegen of de huidige gebruiker degene is die het object vergrendelt. Dus daarom heb je ook een LOCKWHO nodig. Dit kan een user_id uit uw database zijn, een session_id uit PHP. Maar houd het bij iets dat een gebruiker identificeert, een IP-adres is geen goede manier om het te doen.

Denk ten slotte altijd aan een functie voor massa-ontgrendeling die eenvoudig alle LOCKDATE's en LOCKWHO's reset...

Proost



  1. Toon (lijst) MySQL-databases op Linux via de opdrachtregel

  2. Hoe u PII classificeert, zoekt en maskeert in databases...

  3. Zoekfunctionaliteit creëren met Laravel 4

  4. MySQL-volgorde op relevantie