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

que es mejor, hacer una consulta con dos variables o con una en este caso?

Estas en el tema de que es mejor, hacer una consulta con dos variables o con una en este caso? en el foro de Mysql en Foros del Web. veran, tengo Cita: Editado: Codigo de programacion no permitido en foros de BBDD es decir Cita: Editado: Codigo de programacion no permitido en foros de ...
  #1 (permalink)  
Antiguo 15/12/2014, 11:32
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
que es mejor, hacer una consulta con dos variables o con una en este caso?

veran, tengo
Cita:
Editado: Codigo de programacion no permitido en foros de BBDD
es decir

Cita:
Editado: Codigo de programacion no permitido en foros de BBDD
y hacer la consulta sql tomando en cuenta el nombre del tema y el id
para mostrar la informacion del tema
o
solo tomar en cuenta el id(el que está despues del guion)

en la primera opcion el usuario debera escribir la url exacta en la barra de direcciones el tema y el id exactos, si no son exactos no entrará.

en la segunda opcion voy a dejar que el usuario pueda poner lo que sea en la url siempre y cuando no modifique el id, de todas formas la consulta se basa solo en el id.

por una parte la primera opcion me parece bien por que asi hay coherencia entre la url y el tema, por si un usuario quiere hacer una broma tipo

Cita:
Editado: Codigo de programacion no permitido en foros de BBDD
osea, como se basa en ambos(segundo caso), el tema no sera encontrado.


por otra parte me parece que es buena la segunda por que asi no me preocupo mucho por si el usuario pueda poner caracteres extraños en el titulo y no los pueda interpretar con las urlsamigables tan facilmente ademas de que un solo filtro puede ser mas rapido.

nose que piensen ustedes.
de atemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por gnzsoloyo; 15/12/2014 a las 11:56
  #2 (permalink)  
Antiguo 15/12/2014, 12:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: que es mejor, hacer una consulta con dos variables o con una en este caso?

En principio, te recuerdo que en los foros de BBDD no se postea nada que no sea SQL. No es relevante ni permite saber nada del problema
Las rutas que quieras usar son sólo temas de programación, que las mandes de una u otra forma es irrelevante para MySQL, porque MySQL jamás las ve, desaparecen antes de crearse la consulta en SQL, en la aplicación.

Aquí el tema central es si vas a usar uno o dos parametros en el WHERE, y en ese punto la cosa es simple: Si uno de los parámetros es PK en la tabla que cosnutlas, el segundo es superfluo. Es así porque por cada valor de PK solo hay un único registro, por lo que con ese solo valor alcanza.

Ahora bien, lo que si puede suceder, en caso de agregar más parametros a una query basada en PK es que devuelva cero registros, porque ese otro parámetro en realidad no existe en el registro con esa PK. Eso no lo podemos saber porque ese segundo parámetro bien podría ser un error de ingreso o seleccion del usuario, con lo que no hay fallo: Hay un error de datos producto de la interfase silla-teclado, como decía un amigo mio... o sea, el que tipea mal las cosas.
__________________
¿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 15/12/2014, 12:08
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: que es mejor, hacer una consulta con dos variables o con una en este caso?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En principio, te recuerdo que en los foros de BBDD no se postea nada que no sea SQL. No es relevante ni permite saber nada del problema
Las rutas que quieras usar son sólo temas de programación, que las mandes de una u otra forma es irrelevante para MySQL, porque MySQL jamás las ve, desaparecen antes de crearse la consulta en SQL, en la aplicación.

Aquí el tema central es si vas a usar uno o dos parametros en el WHERE, y en ese punto la cosa es simple: Si uno de los parámetros es PK en la tabla que cosnutlas, el segundo es superfluo. Es así porque por cada valor de PK solo hay un único registro, por lo que con ese solo valor alcanza.

Ahora bien, lo que si puede suceder, en caso de agregar más parametros a una query basada en PK es que devuelva cero registros, porque ese otro parámetro en realidad no existe en el registro con esa PK. Eso no lo podemos saber porque ese segundo parámetro bien podría ser un error de ingreso o seleccion del usuario, con lo que no hay fallo: Hay un error de datos producto de la interfase silla-teclado, como decía un amigo mio... o sea, el que tipea mal las cosas.
Bueno.
entonces el tema iba en Regexp o HTML o Programacion general?
o cualquiera de ellos.
bueno gracias por la respuesta
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 15/12/2014, 14:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: que es mejor, hacer una consulta con dos variables o con una en este caso?

Cita:
Bueno.
entonces el tema iba en Regexp o HTML o Programacion general?
o cualquiera de ellos.
A mi entender, en ninguno de ellos... Para mi estás pensando completamente mal esto

Cita:
y hacer la consulta sql tomando en cuenta el nombre del tema y el id
para mostrar la informacion del tema
o
solo tomar en cuenta el id(el que está despues del guion)

en la primera opcion el usuario debera escribir la url exacta en la barra de direcciones el tema y el id exactos, si no son exactos no entrará.

en la segunda opcion voy a dejar que el usuario pueda poner lo que sea en la url siempre y cuando no modifique el id, de todas formas la consulta se basa solo en el id.
Por lo que describes estás pretendiendo que el usuario pueda pasar los parámetros en forma manual a una web determinada, lo que no sólo es un altísimo riesgo de seguridad, sino además un modo inadecuado e incontrolado de uso de cualquier aplicación.
Esas rutas y esas parametrizaciones deberían ser creadas por una aplicación, y la navegación controlada de la misma forma.
No deberías estar haciendo un servicio que permita meter a mano cualquier valor.

En todo caso, el problema a resolver para, pariendo de uno o más parámetros, realizar una consulta a la base de datos, es algo que se hace dentro del body del script programado, sea esto JSP, PHP, o ASP. Pero no lo haces ni en HTML, ni con expresiones regulares. Lo haces programando
Como observación te agrego que ni el HTML se comunica con las bases de datos, ni el las expresiones regulares tienen utilidad por si mismas fuera del lenguaje de programación que las usa.
Por otro lado, ponerlo en Programación general tampoco tiene sentido, desde que ya existen subforos específicos de cada lenguaje para Web...

Busca el que corresponda y postea allí los scripts con que estás manejando esto (te los van a pedir).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/12/2014, 14:36
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: que es mejor, hacer una consulta con dos variables o con una en este caso?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
A mi entender, en ninguno de ellos... Para mi estás pensando completamente mal esto



Por lo que describes estás pretendiendo que el usuario pueda pasar los parámetros en forma manual a una web determinada, lo que no sólo es un altísimo riesgo de seguridad, sino además un modo inadecuado e incontrolado de uso de cualquier aplicación.
Esas rutas y esas parametrizaciones deberían ser creadas por una aplicación, y la navegación controlada de la misma forma.
No deberías estar haciendo un servicio que permita meter a mano cualquier valor.

En todo caso, el problema a resolver para, pariendo de uno o más parámetros, realizar una consulta a la base de datos, es algo que se hace dentro del body del script programado, sea esto JSP, PHP, o ASP. Pero no lo haces ni en HTML, ni con expresiones regulares. Lo haces programando
Como observación te agrego que ni el HTML se comunica con las bases de datos, ni el las expresiones regulares tienen utilidad por si mismas fuera del lenguaje de programación que las usa.
Por otro lado, ponerlo en Programación general tampoco tiene sentido, desde que ya existen subforos específicos de cada lenguaje para Web...

Busca el que corresponda y postea allí los scripts con que estás manejando esto (te los van a pedir).
Bueno, en realidad uso tanto la expresion regular en htacces como el recibo de valores en php y asi hago la consulta al sql.
y lo de pasar manualmente no es que sea un servicio, de hecho creo que eso jamas lo harian los usuarios, solo copian y pegan la url.
pero me he fijado que si en algunas webs copio y pego la direccion en la barra de direcciones y modifico una letra, entonces ya no entra a la direccion, sin embargo aqui en foros del web acabo de notar que hacen lo mismo que yo.
osea puedes modificar la url donde esta el nombre del tema y te lo mostrara, siempre y cuando no modifiques el id, que es el ultimo numero que hace que un tema duplicado se distinga de otro.
solo que talvez con javascript o alguna redireccion el foro corrige a la url real que corresponde al id.
la verdad esta anomalia(podria decirse) no es tan grave pero creo que lo correcto es que este como aqui en forosdelweb
o no se que opines
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Etiquetas: sql, variables
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 10:40.