Concurrencia postgresql php

Hola, llevo 2 días y medio dándole vueltas a un problema de concurrencia que tengo en mi aplicación php atacando a postgresql.
Verán... Imaginemos 2 usuarios: A y B. El usuario A entra en la gestion de notarías, hace un 'select * from notaría where id_notaria = $id;' y se muestran todo los datos de una notaría concreta. Entonces, pulsa el botón EDITAR y antes de hacer el UPDATE el usuario B lee la misma notaría y se dispone también a editar. El usuario A hace el update y luego el B tamb. ¡Quedan registrados los últimos datos guardados, los del usuario B! Eso es un problema, es como si el usuario A estuviera modificando los datos de la notaría 1 y, antes de hacer el UPDATE, el usuario B borra dicha notaría! Sería un problemón...
¿Cómo puedo evitar esto? He visto semaforos, transacciones, bloqueos de select for update y lock in share mode,... Y todos tienen algún inconveniente!!
¿Alguien me puede ayudar? Por favorrrrrrr
No se como solucionarlo ni si desde postgresql ni si desde php...

1 respuesta

Respuesta
1
Lo mejor es un semáforo... o algo parecido. Lo que yo utilizo es cuando hacen clisk en editar mando un update a una tabla de configuración que me hice que tiene un campo que es permitir update
Entonces lo que hago es cuando alguien clicea en update, cambio ese valor, y cuando termina de actualizar pues vuelve a cambiar el estado en la tabla de configuración
Así que el proceso es
1.- Cuando cliqueo en actualizar, compruebo si esta activo, si lo esta, pues edito la noticia y si no, "lo siento pero nos e puede actualizar ahora, por favor, intentalo dentro de unos momentos":P

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas