Anch'io avevo un problema simile ed infatti ho risolto aggiungendo due campi al db, un campo l'ho chiamato "status" e l'altro è un campo data/ora.

In pratica quando uno degli amministratori apre quel determinato record lo script scrive nel campo "status" che il record è in corso di modifica.

Una volta terminata la modifica e salvato il record il campo "status" segnerà ancora che il record è in corso di modifica e rimane bloccato per i successivi X minuti.

Il campo data mi serve invece per confrontare l'ultima modifica effettuata con quella in corso e se il record è stato modificato da poco tempo appare un bell'alert che avvisa che il record è stato modificato da X tempo. A quel punto l'amministratore potrà rendersi conto se qualcuno ha messo mano allo stesso record da poco tempo e decidere cosa fare.

Alla fine è un po' quello che fa Joomla! quando un amministratore modifica un articolo. Lo blocca per un determinato tempo e non c'è possibilità di modifica da parte di altri.