Foros del Web » Programando para Internet » PHP »

NULL vs cadena vacía, ¿resuelto??

Estas en el tema de NULL vs cadena vacía, ¿resuelto?? en el foro de PHP en Foros del Web. Hola gente forera, qué talca? tengo un problema que no me deja avanzar con un laburo que estoy haciendo. Estoy programando un sistema de currículums ...
  #1 (permalink)  
Antiguo 09/06/2007, 17:31
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
NULL vs cadena vacía, ¿resuelto??

Hola gente forera, qué talca? tengo un problema que no me deja avanzar con un laburo que estoy haciendo. Estoy programando un sistema de currículums y el asunto es que no sé cómo definir los campos que eventualmente queden vacíos en una base de datos mysql... Osea, estoy al tanto mas o menos de la discusión "NULL vs cadena vacía", pero no he logrado llegar a una conclusión clara .

Por ahí escuché que elegir entre null o "" depende de uno, es decir, del estilo de programación que tengas o la forma en la que estás acostumbrado a entrarle al php, no?, bien esto es realmente así?? es uno mejor que el otro?? y entonces en qué casos conviene usar uno y no el otro...

No sé si esto se ha resuelto ya en algún otro post, o si existe material (manual, tutorial) que hable de esto, o por ejemplo qué aconseja el mismo mysql... Agradecería mucho algún dato al respecto... porque es que tengo que definir esto para meterle de lleno a la programación y las verificaciones de variables y campos vacíos...

desde ya, muchas gracias,
chapu
  #2 (permalink)  
Antiguo 09/06/2007, 21:36
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: NULL vs cadena vacía, ¿resuelto??

Hola chapu.

Pues normalemente se definen en mysql campos NULL, para los que se puedan dejar vacios.

Lo otro "", realmente casi nunca los manejo...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 09/06/2007, 21:38
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: NULL vs cadena vacía, ¿resuelto??

Hola,

lo que entiendo, es que usas NULL cuando quieres expresar que lo que va adentro de esa columna es desconocido.

Por ejemplo, si tienes una tabla de usuarios donde hay una columna varchar "telefono" y la defines como NULL. A la hora de que el usuario se esta registrando muestras el formulario con el campo "Teléfono" entonces, como no tiene teléfono, deja ese campo vacío. Cuando se hace el INSERT ¿qué nos quizo decir el usuario?: 1) Que no tiene teléfono o 2) Que desconoce el teléfono. Así que dices: ok si esta vacío el campo inserto null y se acabo.

Pero luego te dice el cliente que ocupa ver una lista de usuarios agrupada por los que tienen teléfono, los que no tienen teléfono y los que desconocen su teléfono. Cómo vas a hacer esto? xD

No se si me explique bien.

Mi consejo sería que hicieras tu base de datos sin NULLs y durante el desarrollo, si ves que vas a necesitar que una columna sea NULL, pues cambias tu base de datos y listo.

Saludos.
  #4 (permalink)  
Antiguo 10/06/2007, 11:42
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
sigo extraviado en el asunto...

hey!! muchas gracias por contestar muchachos! , pero sigo un tanto extraviado...

Carxl, yo en realidad siempre me he manejado en los casos de campos vacíos con "" (cadenas vacías) y nunca con NULL. Pero porque nunca conocí bien su utilidad, pero ahora que estoy arrancando con un nuevo proyecto php, me dije a mí mismo, ¿cómo es posible que no sepa bien para qué sirven los campos NULL, si mucha gente los usa y es una de las características de mysql?!

k4k4, viejo muchas gracias porque ahora veo que entonces un campo vacío puede tener 2 sentidos (en el caso del teléfono entonces: que quien llena el formulario no tiene teléfono o que no lo sabe... igual parece medio rebuscado este ejemplo, porque cómo sabés que no lo sabe por ejempolo... habría que buscarle una aplicación más práctica y no se me ocurre ninguna che!).
Y gracias por el consejo, pero es que mi idea es justamente definir de una vez la tabla para no estar volviendo sobre ella... El asunto es que es muy grande, entonces no quiero enroscarme después porque me voy a voler loco.


Ahora bien, a nivel de optimizar-agilizar la tabla, por ejemplo, conviene definir los campos vacíos como NULL o como "" (cadena vacía)???
Estaría bueno ver si tienen ejemplos donde usen alguna de las dos posibilidades, o una mezcla de ellas...

Siento como que esto del (null vs "") es algo muy simple y a la vez muy complejo. Una boludez, pero así resulta... jeje

chapulín
  #5 (permalink)  
Antiguo 10/06/2007, 13:47
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

El tema yo lo tomo bastante simple. Si quieres discriminar entre "" y NULL es un paso extra al grabar las cosas. Y cuando hagas búsquedas, ten en cuenta que es distinto "" que NULL entonces es una paso mas también en la búsqueda... le estas agregando complejidad que en algunos caso puede ser terrorífico el asunto sin ninguna utilidad "comprobada". El tema no va en algo practico porque NULL vale NULL y "" vale "" entonces de que estamos hablando? Son dos cosas distintas que lo único que haces es agregar complejidad innecesaria a algunas cosas. No dudo que en algunos casos se necesite, pero no he conocido ninguno y las veces que me cruce con problemas por esto fueron horrorosos y sin utilidad "comprobable".

En resumen, es algo que queda en vos por el hecho de costumbre o criterio, no hay (o no conozco) alguna explicación técnica sobre el asunto. La mayoría de las veces se habla con opiniones o con gustos sobre este tema, entonces dejemonos llevar y elijamos por gustos

Saludos.
  #6 (permalink)  
Antiguo 10/06/2007, 13:48
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: NULL vs cadena vacía, ¿resuelto??

Hola,

efectivamente, es un ejemplo muy rebuscado. Investigué sobre este tema ya que me parecio interesante.

Otros ejemplos que encontré son por ejemplo el del color de cabello. Si quieres almacenar este dato en una tabla, tal vez lo más apropiado sería usar NULL porque que pasa si la persona es calva. xD

Otro sería: en una tabla de empleados hay una columna para guardar la fecha en que el empleado dejo de trabajar en la empresa. Como no podemos adivinar el futuro, decimos que esa fecha puede ser NULL también.

Ahora, si te fijas, estos ejemplos son en base al significado que yo le estoy dando a NULL. En este caso para mi NULL puede ser:
  • desconocido
  • no aplicable
  • o irrelevante
Con esto, efectivamente estoy tomando un extremo!

Como usualmente no quiero almacenar nada que tenga esos atributos en mis aplicaciones, entonces no uso NULL. Esto es una cuestión de diseño, pero igual podría haber usado NULL, es decir, al final el resultado va a ser el mismo o más correctamente tiene que ser el mismo: lo que el cliente pide.

Sin embargo, me parece que son diferentes las queries SQL y las validaciones de datos si usas columnas NULL o NOT NULL. Es posible que sean más complejas con NULL ya que para manejar valores desconocidos (lo que es una expresión incongruente ya que un valor "vale" algo jeje) SQL usa otra sintaxis.

Desconozco que tan grande sea el proyecto en que estás trabajando, pero si estas empezando lo primero sería lograr el diseño que refleje el problema que intentas resolver y después preocuparte por el performance. Tal vez paresca algo despreocupado, pero con un buen diseño las optimizaciones para mejorar el desempeño son más fáciles.

En fin, creo que no me he explicado bien otra vez. Me despido diciendo que: muchas veces la mejor maestra es la experiencia.

Saludos.
  #7 (permalink)  
Antiguo 10/06/2007, 14:02
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por k4k4 Ver Mensaje
Otros ejemplos que encontré son por ejemplo el del color de cabello. Si quieres almacenar este dato en una tabla, tal vez lo más apropiado sería usar NULL porque que pasa si la persona es calva. xD

Otro sería: en una tabla de empleados hay una columna para guardar la fecha en que el empleado dejo de trabajar en la empresa. Como no podemos adivinar el futuro, decimos que esa fecha puede ser NULL también.

Ahora, si te fijas, estos ejemplos son en base al significado que yo le estoy dando a NULL. En este caso para mi NULL puede ser:
  • desconocido
  • no aplicable
  • o irrelevante
Con esto, efectivamente estoy tomando un extremo!
Creo que esto es una forma de ver o interpretar al valor NULL. No creo que el tema pase por optimización, ya que no creo que haga diferencia en la velocidad... a menos que tengas una DB con 40 millones de registros, pero en dicho caso seguramente no estarías ni con PHP ni con MySql, tendrías que optar por alguna alternativa mejor o de otras características. Por ejemplo Oracle, que para optimizar las DB podes poner cada tabla de la base de datos en unidades físicas distintas y así no mechas la velocidad que puede tener una tabla con los pedidos de a otra tabla... y cosas de este estilo.

Saludos.
  #8 (permalink)  
Antiguo 10/06/2007, 14:13
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: NULL vs cadena vacía, ¿resuelto??

Hola,

si, así es, realmente intente seguir platicando sobre el concepto de NULL y no sobre optimización. Al menos eso fue lo que intente explicar, lo de optimización, que no es mucho, lo pongo al final. xD

Por cierto, concuerdo con tu punto de vista sobre NULL, me parece que lo has explicado mucho más claro.

Saludos.
  #9 (permalink)  
Antiguo 10/06/2007, 14:28
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: NULL vs cadena vacía, ¿resuelto??

pero qué bueno esto va creciendo!!, muchas gracias amigos por aportar experiencia y conocimientos (eso vale oro, mil gracias!!)

DarioDario, entonces confirmás este asunto de que depende del estilo y lo que a uno le resulte más cómodo, no? Me parece de diez, de hecho yo siempre he laburado de esa forma, pero a veces esta dinámica te puede jugar en contra (son casos contados con los dedos igual, pero no hay que dejar de tenerlos en cuenta, esto como humilde consejo Darío...)
Y buenísimo saber que en el caso de utilizar los nulls aumenta el código, es decir: hay que hacer un par más de verificaciones y se complejiza el tema...

y esto que me decís Darío justo lo estaba pariendo recién... y estaba por postear el "pequeño descubrimiento", jeje, y es que resulta más engorroso el definir una variable como NULL porque como no lleva las comillas (como los números) hay que hacer a la hora del query de mysql, hay que hacer una verificación previa o definir en el caso de que el campo sí haya sido llenado por ejemplo:

$estado_civil: "'soltero'", en vez de: $estado_civil: "soltero",
(cosa de que meta las comillas en el insert de mysql...)

Bien, la idea es ésta, que toda esta info vaya quedando como material para futuros ignorantes del tema, como lo soy yo ahora, jeje.

Y estaría muy bueno ver casos concretos donde resulte imprescindible o cómodo laburar con campos vacíos del tipo null... queda lanzado el pedido!!


(mientras escribo esto ustedes siguen posteando... esperemén, ta bien... escribo lento, pero bueno che!)


K4k4, excelente que te haya disparado para investigar al respecto y después arrojar lo encontrado sobre el tablero, me parece buenísimo, esa es la forma de crecer en una comunidad!!

(Y por lo de rebuscado, siempre pasa que uno amolda los ejemplos al caso y no alrevés, es al pedo... jajaja)

Me gustaron los ejemplos que encontraste, me sirvieron para ordenarme la cabeza. Y me hiciste ver con esto que lo que yo pretendo no necesita de estos matices en los campos vacíos, me quedo con el blanco/negro... de todas formas me quedaría picando si el negro es un null o un ""... jaja, es infinita la duda! De todas formas ya casi me voy quedando con la cadena vacía ("") en detrimento del NULL...


entonces, ¿qué opinan?
  #10 (permalink)  
Antiguo 10/06/2007, 14:29
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por k4k4 Ver Mensaje
Hola,

si, así es, realmente intente seguir platicando sobre el concepto de NULL y no sobre optimización. Al menos eso fue lo que intente explicar, lo de optimización, que no es mucho, lo pongo al final. xD

Por cierto, concuerdo con tu punto de vista sobre NULL, me parece que lo has explicado mucho más claro.

Saludos.
Ufff, gracias, sos el primero que me dice que explique algo bien . Pienso mejor de lo que hablo y me cuesta transmitir algunos conceptos.

El tema de optimización es algo de lo que casi no se puede escapar, muchos argumentos pasan sobre este tema y la verdad en algunos casos (la mayoría diría) esto no es un poco que haga diferencia.

Saludos.
  #11 (permalink)  
Antiguo 10/06/2007, 14:55
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por chapu Ver Mensaje
Y estaría muy bueno ver casos concretos donde resulte imprescindible o cómodo laburar con campos vacíos del tipo null... queda lanzado el pedido!!
La verdad dudo que aparezca alguno. Si existe (no dudo que exista) un ejemplo que sea mejor el NULL debe ser tan técnico o tan puntual que no se aplicaría en el 99% de los trabajos que hago normalmente.

Tengamos otro punto de referencia, desde donde estamos hablando? Con esto quiero decir que si estas haciendo una aplicación para Google esto de seguro sería importante, el volumen de datos que se manejan ahí es monstruoso pero si la aplicación es para la empresita de seguros que como mucho tiene unos 200 mil registros (y estoy exagerando) con comprar y poner un poquito mas de RAM al servidor bastara.
También hay otras cosas para tener en cuenta sobre optimización, agregando a lo que dije de Oracle y los discos físicos agrego lo siguiente:
De nada sirve tener uno Dual Core y 2 GB de RAM Dual Channel aparejos y de la misma placa de silicio si el disco rígido cuando hace una lectura no entrega suficientemente rápido la info, entonces el disco es el cuello de botella, en dicho caso sirve bajar un poco esas especificaciones y poner un RAID de dos buenos discos, se entiende a lo que apunto? No me gusta dar vueltas sobre algo que puede ser muy insignificante y en dicho caso prima la comodidad. Con lo anterior sepulto cualquier argumento de optimización y elijo la comodidad, obviamente si el argumento es suficientemente bueno y hace diferencia no lo voy a despreciar, pero seamos realistas con la aplicación que en ese momento estamos desarrollando.

Creo no estar muy equivocado.

Saludos.
  #12 (permalink)  
Antiguo 10/06/2007, 15:19
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: NULL vs cadena vacía, ¿resuelto??

Darío, qué talca? , la aplicación que estoy desarrollando (uhhh, qué importante suena aplicación, jeje) es medianamente grande, es un sistema de currículums lanzado desde mi provincia por el ministerio de gobierno, vivo en mendoza, argentina... y es probable que te hayas tomado un vino menduco viejo, jaja

No sé bien cuántos habitantes hay deambulando por aquí, ni cuántos son los q ingresarán su currículum a la base de datos, pero calculemos una aproximación de 600.000 personas... no es mucho, pero tampoco es despreciable.

Y de todas formas Darío, yo soy partidario del conocimiento, pero un extremista de dicha filosofía, je. Suponete que la base de datos fuera para mi familia (15 personas) y necesito en algunos casos usar campos vacíos... lo mismo, quiero saber qué es más óptimo y por qué a los suecos (creo que son de por allá) de mysql se les ocurrió meter la posibilidad del campo NULL cuando hay otros importantes gestores de bases de datos que no lo hacen...

Y por qué es que hay gente que sí los usa? Y de hecho no define campos vacíos como "" (cadenas vacías)...??

Estoy también de acuerdo en ponderar muchas veces la comodidad por sobre una poca de optimización, no soy boludo... pero uno gana más en materia de conocimiento y si no es mucho enroscarse joya!


Cita:
Creo no estar muy equivocado.
¿Qué es eso?!, en buena hora si te equivocás y que te animés a equivocarte viejo... pero, si para eso estamos!!


Bien, sigue abierto el debate y siguen en pie los interrogantes...
  #13 (permalink)  
Antiguo 10/06/2007, 16:03
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por chapu Ver Mensaje
Darío, qué talca? , la aplicación que estoy desarrollando (uhhh, qué importante suena aplicación, jeje) es medianamente grande, es un sistema de currículums lanzado desde mi provincia por el ministerio de gobierno, vivo en mendoza, argentina... y es probable que te hayas tomado un vino menduco viejo, jaja
He probado alguno pero obviamente estoy abierto a las donaciones

Cita:
Iniciado por chapu Ver Mensaje
No sé bien cuántos habitantes hay deambulando por aquí, ni cuántos son los q ingresarán su currículum a la base de datos, pero calculemos una aproximación de 600.000 personas... no es mucho, pero tampoco es despreciable.
Te cuento algo rapidito, hice un trabajo (muy simple) para el Ministerio de no se que porquería (no soy un politics lover), el tema es que era una base de datos sobre multas de autos y esas cosas de Capital Federal y eran unos 12 millones de registros, por unos 35 campos mas o menos... realmente inmensa al "dope", no se utilizaban ni la cuarta parte de los datos. La base de datos media 3 GB, fue lo mas grande que agarré en mi vida. Lo monte sobre un servidor Pentiun II con 128 de RAM "tuneado" y el tiempo de respuesta que obtuve rondaban las 0,000X segundos... si, aunque no lo creas, obviamente, optimice todo e indexe correctamente y un montón de bla's. Si bien mi prueba no era algo fiable, le hice de todo a la base de datos para que responda así, me alcanzo para que no piense nunca mas en optimizar alguna. Mi experiencia dice que un buen diseño ahorra muchas otras cosas, y siempre primo la comodidad, porque en todo caso el que programa y arregla macanas ajenas soy.

Cita:
Iniciado por chapu Ver Mensaje
Y de todas formas Darío, yo soy partidario del conocimiento, pero un extremista de dicha filosofía, je. Suponete que la base de datos fuera para mi familia (15 personas) y necesito en algunos casos usar campos vacíos... lo mismo, quiero saber qué es más óptimo y por qué a los suecos (creo que son de por allá) de mysql se les ocurrió meter la posibilidad del campo NULL cuando hay otros importantes gestores de bases de datos que no lo hacen...

Y por qué es que hay gente que sí los usa? Y de hecho no define campos vacíos como "" (cadenas vacías)...??

Estoy también de acuerdo en ponderar muchas veces la comodidad por sobre una poca de optimización, no soy boludo... pero uno gana más en materia de conocimiento y si no es mucho enroscarse joya!




¿Qué es eso?!, en buena hora si te equivocás y que te animés a equivocarte viejo... pero, si para eso estamos!!


Bien, sigue abierto el debate y siguen en pie los interrogantes...
Te voy a dar mi opinión bien porteña sobre el caso del NULL.

<nota aclaratotía>
Para cualquier extranjero que lea lo anterior y no lo entienda la explicasion es simple, en Argentina el porteño es la imagen de una persona fanfarron, soberbia y sobre todo que la sabe todas. En casi ninguna provincia de Argentina caen bien los porteños, obviamente están las excepciones a la regla.
</nota aclaratoria>

A mi forma de ver, es mucho mas "delicado" y mejor visto un NULL que una cadena vacía. La cadena vacía parece bastante "chancha" y creo que es la razón de que los suecos lo hayan agregado. Tenes que pensar que una cadena vacía debe y tiene que ser aceptada ya que dentro de las comillas pueden aparecer una cantidad de letras variables y por supuesto también puede ser vacía. El NULL se agrega para agregar claridad, el NULL es NULL, es la nada, no contiene valor, pero una cadena vacía no fue agregada, se debió aceptar obligadamente, pero el NULL fue optativo y por claridad se agrego.

La verdad es que como agrega complejidad, no hay un argumento solido para usarlo y estamos discutiendo sobre opiniones y pensamientos a mi no me dan ganas de seguir aunque en los primeros post estaba interesante.

Saludos.
  #14 (permalink)  
Antiguo 10/06/2007, 16:30
Avatar de k4k4  
Fecha de Ingreso: junio-2007
Ubicación: Baja California, México
Mensajes: 120
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: NULL vs cadena vacía, ¿resuelto??

En efecto, ya no hay mucho que discutir sin caer en subjetividades.

Saludos y que estén bien.
  #15 (permalink)  
Antiguo 10/06/2007, 16:49
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: NULL vs cadena vacía, ¿resuelto??

Gracias viejo por seguir sumando experiencia, se agradece con alevosía!!

marche un vino tinto a buenos aires!!, jeje, primero tengo q terminar el laburo porq estoy sin un mango (excusas, excusas válidas de un argentino llorón , jaja)

Ahora bien, cuando hiciste este laburo para dicho ministerio de porquería, jaja los ministerios tienden a ser de porquería, creo entender que apelaste a los campos NULL, que te hicieron más ágil la base de datos, pero te complicaron la existencia y no valió la pena realmente. ¿Entendí bien?, ¿esto querías decir?

Porque si es así resulta muy importante saberlo. Me parece excelente el consejo entonces porque se ajusta, se ciñe al problema éste que tengo en particular...


<nota aclaratoria="menduco" style="provinciano montañés">
ebrio por naturaleza y medio quedado a veces, pero muy buen tipo che!

he tenido mis rispideces con algunos porteños y he pasado momentos geniales también con

ellos, así que es cuestión de idiosincracias particulares... lo mismo con los chilenos, con

los sanjuaninos y con mi vecina!!
</nota aclaratoria>


(halago ) Me encantó tu "visión" de los NULL, muy clara y nunca antes había escuchado algo parecido, jeje, una cuestión de imagen y como pulcritud, suecos chetos astutos!!! jajaja
(aunque no lo comparto, jeje, me gusta mucho esa forma mas bien informal de explicar las cosas, así como un cara pálida a los protocolos y formalidades en el acto de aprehender el conocimiento)

Cita:
La verdad es que como agrega complejidad, no hay un argumento solido para usarlo y estamos discutiendo sobre opiniones y pensamientos a mi no me dan ganas de seguir aunque en los primeros post estaba interesante.
ahora, con esto último me guardo mis reservas y no lo comparto. Insisto en que debe haber un argumento sólido para justificar el NULL (una cuestión de ahorro del uso de memoria o algo por el estilo...)

Tampoco estoy de acuerdo (y menos mal porque del disenso surgen las más grandes genialidades) con eso que no sirve discutir sobre un terreno ideológico, o en tal caso resulta aburrido y no te aporta nada... a mí me sigue aportando, así que bienvenidos los parecers sobre el uso del null o las cadenas vacías... No me parece que se cierre acá el tema...

Es más, recién hablaba con mi viejo que me tiraba otra hipótesis:
"el campo NULL viene porque quizá hay programadores que se han acostumbrado a usarlo en otros lenguajes y les resulta más cómodo, entonces la gente de mysql lo ha dejado para no perder a dichos programadores..." (esto inspirado, por ejemplo, en el uso de Fox donde está la posibilidad de programar las bases de datos en SQL y en el mismo Fox)... No creo que esta posibilidad sea la correcta, pero quién sabe...

Entonces, abiertas las puertas a más experiencias o nociones al respecto...
__________________
chapu
  #16 (permalink)  
Antiguo 10/06/2007, 17:28
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por chapu Ver Mensaje
Gracias viejo por seguir sumando experiencia, se agradece con alevosía!!

marche un vino tinto a buenos aires!!, jeje, primero tengo q terminar el laburo porq estoy sin un mango (excusas, excusas válidas de un argentino llorón , jaja)
Como en el football (aclaro que odio dicho deporte), si el Argentino no gana, es un ganador moral!

Mientras llegue el vino no importa cuanto tarde... . Igual, como buen "Argento" te digo que "esta todo bien".

Cita:
Iniciado por chapu Ver Mensaje
Ahora bien, cuando hiciste este laburo para dicho ministerio de porquería, jaja los ministerios tienden a ser de porquería, creo entender que apelaste a los campos NULL, que te hicieron más ágil la base de datos, pero te complicaron la existencia y no valió la pena realmente. ¿Entendí bien?, ¿esto querías decir?
No, en realidad lo que quise decir es que después de ver que con todas las optimizaciones no hubo mucha diferencia con la primera versión de la DB, ojo baje tres decimales... estaba en 0,X al principio y 0,000X después de la optimización, y recuerdo cuando saque la opción de NULL no hubo diferencias, por lo menos en mis pruebas, aunque no creo que puedan tomarce en cuenta ya que yo estaba viendo otras cosas y no estuve con todos los ojos sobre el famosisimo NULL. Como no hubo grandes diferencias con 12 millones de registros, no me voy a preocupar en muy cosas si no supero ese numero.

Cita:
Iniciado por chapu Ver Mensaje
Porque si es así resulta muy importante saberlo. Me parece excelente el consejo entonces porque se ajusta, se ciñe al problema éste que tengo en particular...


<nota aclaratoria="menduco" style="provinciano montañés">
ebrio por naturaleza y medio quedado a veces, pero muy buen tipo che!

he tenido mis rispideces con algunos porteños y he pasado momentos geniales también con

ellos, así que es cuestión de idiosincracias particulares... lo mismo con los chilenos, con

los sanjuaninos y con mi vecina!!
</nota aclaratoria>


(halago ) Me encantó tu "visión" de los NULL, muy clara y nunca antes había escuchado algo parecido, jeje, una cuestión de imagen y como pulcritud, suecos chetos astutos!!! jajaja
(aunque no lo comparto, jeje, me gusta mucho esa forma mas bien informal de explicar las cosas, así como un cara pálida a los protocolos y formalidades en el acto de aprehender el conocimiento)
Comparto plenamente, lo he pasado peor con un "porteño de ley" que con un mendozino, sanjuanino, chileno, boliviano o uruguayo.
Nos salio el Pepe Argento de adentro... mantengamos la compostura que hay personas de otras regiones del planeta que leen esto.


Cita:
Iniciado por chapu Ver Mensaje
ahora, con esto último me guardo mis reservas y no lo comparto. Insisto en que debe haber un argumento sólido para justificar el NULL (una cuestión de ahorro del uso de memoria o algo por el estilo...)

Tampoco estoy de acuerdo (y menos mal porque del disenso surgen las más grandes genialidades) con eso que no sirve discutir sobre un terreno ideológico, o en tal caso resulta aburrido y no te aporta nada... a mí me sigue aportando, así que bienvenidos los parecers sobre el uso del null o las cadenas vacías... No me parece que se cierre acá el tema...

Es más, recién hablaba con mi viejo que me tiraba otra hipótesis:
"el campo NULL viene porque quizá hay programadores que se han acostumbrado a usarlo en otros lenguajes y les resulta más cómodo, entonces la gente de mysql lo ha dejado para no perder a dichos programadores..." (esto inspirado, por ejemplo, en el uso de Fox donde está la posibilidad de programar las bases de datos en SQL y en el mismo Fox)... No creo que esta posibilidad sea la correcta, pero quién sabe...

Entonces, abiertas las puertas a más experiencias o nociones al respecto...
Yo lo que digo es que ya no aporta mucho el tema, hay fundamentos del NULL, no me quiero equivocar, pero según lo que recuerdo (ojo, no se fíen de mí) la diferencia era de lógica, de claridad mas que nada. Tengamos en cuenta que es mucho más gráfica tener un NULL que una cadena vacia.
La parte ideológicas de las cosas me encanta, me gusta el software libre y me encanta Stallman, pero no comparto muchas cosas, hay que ser prácticos como Linus.
En los últimos párrafos estamos especulando, y la verdad, si algo aprendí es que la informática no es compatible con las especulaciones.

Sigo leyendo el tema, pero abandono el barco de las especulaciones y argumentos subjetivos.

Saludos.
  #17 (permalink)  
Antiguo 11/06/2007, 09:28
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: NULL vs cadena vacía, ¿resuelto??

Qué buena onda viejo!! , gracias por seguir mechando ideas y compartiendo la experiencia (así se crece a pasos agigantados, está genial!!!)
...queda pendiente el vino entonces che!! , y atinar y bajarse de la moto de don "Argento", jajaja

Estaría bueno que cuentes (si te parece, si lo considerás importante, por favoooooor, jajaja) qué otras artimañas usaste para optimizar aquella bendita base de datos... Ya sé que el ahorro de uso de memoria no fue una cosa de locos, pero como para saber... para tener una idea (sería una cuestión técnica, carente de especulaciones, , jeje)


Y bueno, pedir a otros foreros también que se acerquen y cuenten su experiencia con el asunto de los campos vacíos (NULL vs "")... Sólo hemos participado 4 personas de esta gigante comunidad, debe quedar mucho por saber...
La idea sería que entre todos lleguemos a una conclusión mas o menos consistente, que nos sirva y que quede aquí para, como ya se dijo, los futuros ignorantes-curiosos del tema... Así que esto sigue abierto y bienvenidos los aportes!!
  #18 (permalink)  
Antiguo 11/06/2007, 19:33
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: NULL vs cadena vacía, ¿resuelto??

Cita:
Iniciado por chapu Ver Mensaje
Qué buena onda viejo!! , gracias por seguir mechando ideas y compartiendo la experiencia (así se crece a pasos agigantados, está genial!!!)
...queda pendiente el vino entonces che!! , y atinar y bajarse de la moto de don "Argento", jajaja
Como buen Argento no cumplo y vuelvo a escribir . Y cuidado que la moto va "a los chapazos" (expresión que se usa para decir que algo va muy rápido).

Cita:
Iniciado por chapu Ver Mensaje
Estaría bueno que cuentes (si te parece, si lo considerás importante, por favoooooor, jajaja) qué otras artimañas usaste para optimizar aquella bendita base de datos... Ya sé que el ahorro de uso de memoria no fue una cosa de locos, pero como para saber... para tener una idea (sería una cuestión técnica, carente de especulaciones, , jeje)
Importante creo que son dos cosas básicas... respetar los modos formales y la integridad referencial.
Te cuento por arriba lo que hice con la base de datos. Primero que nada vino hecha cualquier cosa, la importe desde varios acces. Segundo, habían datos duplicados, los meche a todos (con esa "mechada" se fueron datos que tal vez no debería haber sacado, pero estaban repetido!). Tercero, la primary key no estaba bien definida, la cambie y puse como PK el DNI. Cuarto, meche todos los DNI que tenían menos de 7 digitos y mayores a 8. Una cosa más, si bien eran multas las bases se centraban en las personas y no en los vehículos o ese tipo de cosas... el porque se los debo, apenas empecé me dijeron que así se manejaban y así tenían que trabajar, no me dieron lugar a "cosas buenas". Saque los NULL's y cambie por "", me aportaba claridad y comodidad a mí. Indexe el campo del DNI y de los nombres, son los criterios de búsqueda. Hay que tener en cuenta que cada movimiento de estos me llevavan entre 7 u 8 horas hasta 18 y 20 horas en algunas tareas. También tengan en cuenta que fue una prueba sobre algunas cosas y no era importante perder algunos datos, en una situación real no podría haber hecho la mitad de las cosas.
No tengo mucho más que seguir, pero esto ya se esta convirtiendo en un tema de base de datos y este no es el foro.


Cita:
Iniciado por chapu Ver Mensaje
Y bueno, pedir a otros foreros también que se acerquen y cuenten su experiencia con el asunto de los campos vacíos (NULL vs "")... Sólo hemos participado 4 personas de esta gigante comunidad, debe quedar mucho por saber...
La idea sería que entre todos lleguemos a una conclusión mas o menos consistente, que nos sirva y que quede aquí para, como ya se dijo, los futuros ignorantes-curiosos del tema... Así que esto sigue abierto y bienvenidos los aportes!!
Dudo que participen muchos más, muchas personas entran con poco tiempo (como yo) y cuando me encuentro con algún hilo bastante largo (como este) y no pude seguir la conversación desde el principio no lo leo. Es muy "costoso" leerte un tema tan grande sin saber si vas a sacar provecho, yo prefiero ayudar en cosas más chicas a otros usuarios y de seguro muchas personas mas deben hacer lo mismo.

Saludos.
  #19 (permalink)  
Antiguo 12/06/2007, 10:48
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: NULL vs cadena vacía, ¿resuelto??

Gracias por la data Darío, y porque la experiencia de uno sea la experiencia de todos... (siempre me acuerdo de Cluster en este sentido), está buenísimo!!!


Cita:
Dudo que participen muchos más, muchas personas entran con poco tiempo (como yo) y cuando me encuentro con algún hilo bastante largo (como este) y no pude seguir la conversación desde el principio no lo leo. Es muy "costoso" leerte un tema tan grande sin saber si vas a sacar provecho, yo prefiero ayudar en cosas más chicas a otros usuarios y de seguro muchas personas mas deben hacer lo mismo.
Está bueno saber que esto funciona así... de última estaría bueno buscar otro espacio como alternativa (aquí mismo en este sitio, pero en otra sección quizás) en el que se hable de estos asuntos, como con más profundidad y sin ese apuro que caracteriza los posts normales, no?

pero está bien también que sea así el foro, porque es verdad, entrás apurado y a veces tenés una duda concreta y la querés resolver rápido y no colgarte leyendo un tema gigante, pero estaría bueno que existan los dos espacios...

De todas formas yo particularmente ya opté por las cadenas vacías ("") y a otra cosa mariposa che!! , jaja, gracias por todos los consejos Darío, y también a Carxl y k4k4, muchísimas gracias a todos ustedes!!!

chapulín
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 02:45.