Evitar que dos usuarios editen los mismos datos

He visto una función en diferentes aplicaciones web, incluida Wordpress (¿no está seguro?) Que advierte a un usuario si abre un artículo / publicación / página / lo que sea de la base de datos, mientras que otra persona está editando los mismos datos simultáneamente.

Me gustaría implementar la misma función en mi propia aplicación y he pensado un poco en esto. ¿Es el siguiente ejemplo una buena práctica sobre cómo hacer esto?

Va un poco más o menos así:

1)User A entra en la página de edición del misterioso artículo X. La tabla de la base de datosEvents se consulta para asegurarse de que nadie más esté editando la misma página por el momento, que nadie está haciendo para entonces. Un token se genera aleatoriamente y se inserta en una tabla de base de datos llamadaEvents.

1)User B también quiere hacer actualizaciones al artículo X. Ahora desde nuestroUser A ya está editando el artículo, elEvents la tabla se consulta y se ve así:

|   timestamp   |   owner   |   Origin      |   token      |
------------------------------------------------------------
|   1273226321  |   User A  |   article-x   | uniqueid##   |

2) Se está comprobando la marca de tiempo. Si es válido y tiene menos de 100 segundos de antigüedad, aparece un mensaje y el usuario no puede realizar ningún cambio en el artículo X solicitado:

Warning: User A is currently working with this article. In the meantime, editing cannot be done. Please do something else with your life.

3) Si el usuario A decide continuar y guardar sus cambios, el token se publica junto con todos los demás datos para actualizar la base de datos, y alterna una consulta para eliminar la fila con el tokenuniqueid##. Si decide hacer otra cosa en lugar de confirmar sus cambios, el artículo X seguirá estando disponible para su edición en 100 segundos duranteUser B

¡Déjame saber lo que piensas sobre este enfoque!

¡Les deseo a todos un buen fin de semana!

Respuestas a la pregunta(3)

Su respuesta a la pregunta