Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

permitir/denegar consulta por bandera

Estas en el tema de permitir/denegar consulta por bandera en el foro de Mysql en Foros del Web. Hola a todos Mi pregunta es si se puede configurar mysql para denegar la consulta a una tabla si el valor de otra tabla es ...
  #1 (permalink)  
Antiguo 24/02/2012, 13:21
barchero
Invitado
 
Mensajes: n/a
Puntos:
permitir/denegar consulta por bandera

Hola a todos
Mi pregunta es si se puede configurar mysql para denegar la consulta a una tabla si el valor de otra tabla es 0.
mi intencion es usar esto para con javascript consultar los datos de esta primera tabla unicamente cuando haya modificaciones, cosa que provocarà con un trigger que el valor de la tabla 2 es 1 con lo cual permitirà al javascript realizar la consulta.

Muchas gracias a todos.
  #2 (permalink)  
Antiguo 25/02/2012, 07:18
Avatar de 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: permitir/denegar consulta por bandera

Vamos por partes:

1) JavaScript no puede hacer consultas a la base. Es absolutamente imposible porque el JavaScript carece de recursos para interactuar con bases de datos, y además ej JavaScript se ejecuta en el cliente mientras la base está en el servidor.

2) Un trigger no es una buena idea para realizar tareas de actualización. Además, tampoco puede hacer tareas sobre la misma tabla que se define, sino que las hace sobre los registros que se insertan, modifican o borran, en el momento en que se ejecuta, o bien las hace sobre otras tablas, con ciertas condiciones.

3) El bloqueo de tablas a ese nivel sólo es medianamente funcional dentro de un stored procedure, o bien programáticamente (PHP, ASP, etc.), pero no a nivel de permiso, porque los bloqueos a nivel de permisos son generales y no condicionales.

En definitiva, lo que quieres hacer se hace más bien en programación o SP. Mi sugerencia es que lo hagas con Ajax, ya que quieres usar JavaScript... Pero que estudies un poco más de programación, porque no tienes claros los límites de cada lenguaje.
Sin ofender...

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/02/2012, 07:29
barchero
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: permitir/denegar consulta por bandera

hola gnzsoloyo
obviamente he estado buscando antes de publicar el post, lo que pasa es que la manera que el maestro google dice es la de lanzar consultas masivas con ajax y php, yo pedía si había alguna manera sea con el código que sea de consultar esos datos sin acribillar al mysql a consultas.
  #4 (permalink)  
Antiguo 25/02/2012, 07:40
Avatar de 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: permitir/denegar consulta por bandera

Cita:
sin acribillar al mysql a consultas.
¿"Acribilllar a MySQWL de consultas"? ¿Y para qué crees que MySQL está diseñado (como todo buen DBMS)? Precisamente para eso: Responder consultas en muy alto rendimiento.
Si no pudiese responder las exigencias de alto nivel de consultas, no serviría...
...Y no. No existen modos de hacer lo que quieres, por las razones que te dije (hay más, pero no vienen al caso).

Lo que tienes que preocuparte es por usar un método eficiente. No por ahorrar tiempo o peticiones a la base, que no siempre implican ineficiencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: denegar_consulta, javascript, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.