テーブルにLOCKDATEフィールドとLOCKWHOフィールドを実装する必要があります。 PHP / MySQL以外の多くのアプリケーションでこれを実行しましたが、常に同じ方法です。
TTLが経過するとロックが終了するため、NOWとLOCKDATEを使用して日付を減算し、オブジェクトが30分または1時間以上ロックされているかどうかを確認できます。
もう1つの要素は、現在のユーザーがオブジェクトをロックしているユーザーであるかどうかを検討することです。そのため、LOCKWHOも必要です。これは、データベースのuser_id、PHPのsession_idにすることができます。ただし、ユーザーを識別するものに保管してください。IPアドレスはそれを行うのに適した方法ではありません。
最後に、すべてのLOCKDATEとLOCKWHOをリセットするだけの一括ロック解除機能を常に考えてください...
乾杯