sql >> Databasteknik >  >> RDS >> Mysql

Hur implementerar man pessimistisk låsning i en php/mysql-webbapplikation?

Du måste implementera ett LOCKDATE och LOCKWHO-fält i din tabell. Jag har gjort det i många applikationer utanför PHP/Mysql och det är alltid på samma sätt.

Låset avslutas när TTL har passerat, så du kan göra en subtraktion av datum med NOW och LOCKDATE för att se om objektet har varit låst i mer än 30 minuter eller 1 timme som du vill.

En annan faktor är att överväga om den nuvarande användaren är den som låser objektet. Så det är därför du också behöver en LOCKWHO. Detta kan vara ett user_id från din databas, ett session_id från PHP. Men håll det till något som identifierar en användare, en ipadress är inte ett bra sätt att göra det.

Slutligen, tänk alltid på en massupplåsningsfunktion som helt enkelt återställer alla LOCKDATEs och LOCKWHOs...

Skål



  1. Lägg till tidsstämpelkolumn med standard NOW() endast för nya rader

  2. Hur kan jag hitta vilka tabeller som refererar till en given tabell i Oracle SQL Developer?

  3. Att analysera döden med tusen minskar arbetsbelastningen

  4. MySQL-replikering:Felaktiga transaktioner i GTID-baserad replikering