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

Criterios diferentes en problema

Estas en el tema de Criterios diferentes en problema en el foro de Bases de Datos General en Foros del Web. Hola que tal, por acá se armó una pequeñin discusión, les cuento el caso. Existe una tabla de detalle de requerimientos que posee un campo ...
  #1 (permalink)  
Antiguo 21/03/2007, 15:17
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Pregunta Criterios diferentes en problema

Hola que tal, por acá se armó una pequeñin discusión, les cuento el caso.

Existe una tabla de detalle de requerimientos que posee un campo cantidad que es numérico. Luego se definió que la atención de esos requerimientos podía ser parcial, es decir que el requerimiento puede no ser atendido en toda la cantidad señalada por lo que se creó el campo CantidadComprada el cual se le grabaría cero cuando se cree un nuevo requerimiento. Dicha tabla es manejada por la gente de inventarios. Yo que trabajo en otro módulo hago debo de hacerle select a esa tabla por lo que ahora debo de sacar lo faltado por comprar <Cantidad-CantidadComprada> pero mi select tiene error ya que la tabla de requerimientos ya tenía datos por lo que cuando se creó el nuevo campo todos los registros existentes se llenaron con NULL. Al yo lanzar un select en aquellos registros que tienen NULL al restar me devuelve NULL.

Mi solución es que el responsable de esa tabla le haga un update a los registros que tienen NULL y le ponga cero porque yo siempre debería recibir un valor en ese campo

El de inventario dice que no va a hacer eso y que yo debería de tener la precaución de verificar en mis operaciones que los valores existan y no confiarme <ISNULL(CantidadComprada,0)> Que por ejemplo si me toca hacer una división con datos de sus tablas debería de preguntar primero si el denominador que estoy tomando no es cero.

A lo que yo le respondí que dicho campo siempre debería de tener valor y estaría demás llamar a la función ISNULL ya que según la lógica del negocio siempre debería de encontrar datos en ese campo

Además andar poniendo ISNULL se ve feo en mis queries

Que dicen
  #2 (permalink)  
Antiguo 21/03/2007, 18:07
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 5 meses
Puntos: 11
Re: Criterios diferentes en problema

Con el mayor de los pesares dejame decirte que el equivocado sos vos ya que debes hacer tus querys para que no se corrompan ante datos malos (ya sea estos por una mala administración o por introducción de datos erroneos de los usuarios).

Si te acostumbras a hacer "querys anti dummies" veras que el mantenimiento que le debes dar a tu software (aplicativo) en el futuro sera minimo.
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 22/03/2007, 07:29
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Criterios diferentes en problema

en mi opinion ambos estan pecando...uno por lo que ya te dijo Linterns y lo otro porque lo que dices tú, dado que un campo numerico no deberia tener un null, eso es ilogico.. ahora si se desea darle un manejo puedes indicar un valor por defecto al campo (en este caso 0 por si nadie le manda nada al campo se guarde ese valor) y tu puedes agregar la funcion que sea necesario para hacer la consulta adecuadamente (por lo que dices es ISNULL)
  #4 (permalink)  
Antiguo 22/03/2007, 11:29
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Re: Criterios diferentes en problema

Cita:
Iniciado por Linterns Ver Mensaje
Con el mayor de los pesares dejame decirte que el equivocado sos vos ya que debes hacer tus querys para que no se corrompan ante datos malos (ya sea estos por una mala administración o por introducción de datos erroneos de los usuarios).

Si te acostumbras a hacer "querys anti dummies" veras que el mantenimiento que le debes dar a tu software (aplicativo) en el futuro sera minimo.
La cosa es que ese campo nunca debía venír con NULL. Si es así debo de ponerle ISNULL a cada campo en cada select que haga, "por si acaso"

Cita:
Iniciado por edwinandlozano Ver Mensaje
en mi opinion ambos estan pecando...uno por lo que ya te dijo Linterns y lo otro porque lo que dices tú, dado que un campo numerico no deberia tener un null, eso es ilogico.. ahora si se desea darle un manejo puedes indicar un valor por defecto al campo (en este caso 0 por si nadie le manda nada al campo se guarde ese valor) y tu puedes agregar la funcion que sea necesario para hacer la consulta adecuadamente (por lo que dices es ISNULL)

Lo que pasa es que antes ese campo no existía, entonces cuando se lo creo los registros existentes obtuvieron el valor de NULL, también se modificó el procedimiento que hace el insert en esa tabla para que cuando inserte grabe cero en dicho campo. Entonces yo tengo algunos campos con cero y algunos campos con NULL.

Pienso que los que tienen null deberían de tener cero por lo que tendrían que hacerle un update para que se ajuste al insert actual, y yo siempre debería de recibir valor cuando le haga select a ese campo
  #5 (permalink)  
Antiguo 22/03/2007, 12:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Criterios diferentes en problema

La verdad yo creo que el uso de campos NULL se debe limitar a aquellos datos que verdaderamente requieran un valor nulo, lo cuál no es el caso de tu problema, un campo numérico de este tipo debería tener un valor por default, en este caso 0, además recordar que el uso de datos nulos ralentiza en gran medida las consultas.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 23/03/2007, 17:55
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Re: Criterios diferentes en problema

Entonces está dicho... Nada de campos NULL y por lo tanto nada de verificaciones en mis select's (ISNULL)
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 16:34.