Usar campos nulos tiene de por si un cierto consumo de espacio en
disco (fijo), ese espacio se ocupa el contenido sea nulo o no. Es como
una lugar para dejar una marca del estado del campo.
Además, un campo vacio no ocupa menos lugar.
Por ejemplo, si pones un 0 en un campo entero, el campo entero se
guarda completo.
Si pones vacio en un campo char, se autocompleta hasta su largo con
espacios en blanco
Si pones vacio en un campo varchar, guarda vacio pero ocupa un espacio
fijo, que dependera del SGBD (por ejemplo en mysql, ocupa siempre al
menos 4 caracteres).
La ventaja del campo nulo es el concepto de dato desconocido (ausencia
de valor) que permite que en calculos matematicos, el campo no se
tiene cuenta, o por ejemplo, no es lo mismo que "no haya" que "no se
sepa si hay".
Otra cosa que no comente.
En algunos SGBD, los indices únicos (UNIQUE) que no son primarios
(CANDIDATOS en FOX), al igual que los primarios, no permiten claves
duplicadas, pero si permiten valores null (y estos pueden estar en
varios registros, como no se cargan al indice, y no da error de clave
duplicada)
Por ejemplo, si estas cargando datos de clientes, es sabido que dos
clientes no pueden tener el mismo CUIT, por lo tanto, es logico poner
sobre ese campo una clave unica, para evitar repetidos, pero de muchos
clientes, se ignora el CUIT, por lo que si podemos decir que ese campo
admite nulos, y el indice funciona bien (ignora los registros con
clave nula).
Saludos: Miguel, Santa Rosa (LP)
El 08/02/12, arvios <arv...@gmail.com> escribió: