Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/12/2013, 09:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Inducir la falla de un trigger. (Si se puede devolver un error mejor)

Cita:
un usuario, puede ir conectandose a diferentes muros, salir de uno, entrar en otro o no estar en ninguno, cuando lo hace voy actualizando el id_muro del usuario para saber en que muro esta actualmente.
Eso se hace habitualmente en la sesión de la aplicación, no necesariamente en la base (aunque usar una tabla de log de conexiones no es una mala idea del todo).
No es conveniente hacerlo en la base por el riesgo de errores ante fallos de conexión imprevistos. No te olvides nunca que en web estás usando un sistema de enlace asíncrono, y por consecuencia los fallos son probables.
Cita:
el usuario solo puede enviar mensajes al muro que esta actualmente conectado, es decir que si intenta mandar un mensaje a un muro y no esta conectado no deberia poder.
Si manejas el almacenamiento de los mensajes por medio de stored procedures, puedes hacer todas las validaciones necesarias sin necesidad de recursos extra. En estos SP puedes implementar toda la lógica necesaria sin tener que recurrir a TRIGGERs, que en un sistema de alto nivel de inserciones puede ser contraproducente.
Cita:
Logre que explote haciendo uso de un "bug" de mysql pero si en el futuro lo arreglan esta tecnica va a dejar de funcar, por lo que quiero algo que sea para esto si es que lo hay.
Usar bugs como recurso de solución es una pésima idea (además de innecesaria), primero porque no puedes confiar en que no desaparezcan, como ya lo sabes. Y tampoco puedes confiar en que lo que diseñas en tu PC sea funcional en el servidor, si este no depende exclusivamente de ti. Bien podría tener versiones anteriores (con consecuencias desastrosas), o posteriores (donde no funcione).
Además, usar un bug bien podría tener efectos secundarios imprevisibles. ¿No te parece? Porque en definitiva estás usando un error de programación como solución.
A mí no me parece muy sensato.

Aún así, si quieres insistir con generar un fallo en el TRIGGER, mi recomendación es que leas con detenimiento el tema de SIGNAL en el manual de referencia, porque es el único método que te servirá.
http://dev.mysql.com/doc/refman/5.5/en/signal.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)