Musisz zaimplementować w tabeli pola LOCKDATE i LOCKWHO. Zrobiłem to w wielu aplikacjach poza PHP/Mysql i zawsze jest tak samo.
Blokada zostaje zakończona po upływie czasu TTL, więc możesz odjąć daty za pomocą funkcji TERAZ i LOCKDATE, aby sprawdzić, czy obiekt został zablokowany na dłużej niż 30 minut lub 1 godzinę, jak chcesz.
Innym czynnikiem jest rozważenie, czy bieżący użytkownik blokuje obiekt. Dlatego też potrzebujesz LOCKWHO. Może to być user_id z Twojej bazy danych, session_id z PHP. Ale trzymaj się czegoś, co identyfikuje użytkownika, adres IP nie jest dobrym sposobem na zrobienie tego.
Wreszcie, zawsze pomyśl o funkcji masowego odblokowania, która po prostu resetuje wszystkie LOCKDATE i LOCKWHOs...
Pozdrawiam