Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/06/2007, 13:48
Avatar de k4k4
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.