Es incorrecto el uso de null

30/11/2007 - 16:31 por Imac_man | Informe spam
Saludos amigos,

mis preguntas son las siguientes:

1. ¿Es una mala practica permitir que los campos de mis tablas acepten
null?, si es asi ¿que es lo correcto cuando no quiero que se guarde algo en
los campos.?
2.¿El usar null en la mayoria de mis tablas hace que los tiempos de
respuesta en los querys se vean afectados?

gracias de antemano

Preguntas similare

Leer las respuestas

#26 Leonardo Azpurua
04/12/2007 - 12:47 | Informe spam
"Alfredo Novoa" escribió en el mensaje
news:

He demostrado lo que me has pedido sobradamente y lo sabes. SQL es
inconsistente y los miembros del comité SQL lo admiten abiertamente
(algunos de los ejemplos eran de uno de ellos). Ahora resulta que tú
sabes más que ellos y más que todos y el mundo es injusto por que no
reconoce tu genialidad.



Nadie ha dicho nada acerca de la consistencia o inconsistencia de SQL.

Fuiste tu quien armó una alharaca porque dije que prefería permitir nulos en
una columna que partir la tabla. Eres tu quien por el único gusto de
incordiar te vas por los cerros de Úbeda cada vez que se te lleva la
contraria en el más insignificante detalle.

Los ejemplos que me has dado o son totalmente absurdos (SELECT * FROM x
WHERE Edad = Edad) o son dogmáticos (AVG(x) debe ser igual a
SUM(x)/COUNT(*): sí, debería, pero resulta que x puede contener nulos,
entonces AVG(x) no debe ser igual a nada).

Lo de los 850.000$ no fue un ejemplo: fue una anécdota. Ni siquiera se
describe de qué manera se produjo la pérdida y por qué la culpa fue de los
nulos (y no de quien obtuvo los datos ignorando que los nulos podían
existir) ni como un cambio en el diseño de la BBDD podría haber impedido esa
situación.

Lo único que digo es que me parece más simple permitir un nulo en una
columna que partir la tabla con el unico fin de impedir los nulos. Y tu
única respuesta es ponerte a insultar como una loca en nombre de la ciencia,
en vez de proporcionar una sóla demostración práctica de por que es mejor lo
contrario.

La "honestidad intelectual", además de la humildad necesaria para reconocer
que uno se equivoca, es el valor de mantener las opiniones mientras se cree
en ellas, aunque nunca falte un pelmazo que te tire libros a la cabeza.

Entiendo las objeciones teóricas al uso de nulos. Pero me sigue pareciendo
que en la práctica son la mejor manera de representar la no disponibilidad
de un elemento de información.

Además de (y más que) la realización de un conjunto de principios de diseño,
las BBDD modelan elementos y relaciones del mundo real, y las modelan según
nuestro conocimiento de esos elementos y relaciones: si nuestro conocimiento
es imperfecto o incompleto, debemos dejar un margen para esa imperfección y
esa incompletitud. Los problemas derivados de permitir nulos en ciertas
columnas van a ocurrir de cualquier manera, a menos que quien lidia con los
datos reconozca que pueden estar incompletos. Y eso va a pasar
independientemente de como los organices.

Si en vez de insultarme o apabullarme con dogmas intentaras darme un
ejemplo que demuestre (pero que realmente demuestre) que es mejor partir las
tablas que permitir nulos, estaría dispuesto a reconocer mi error.

De momento, si escribo SELECT * FROM X y me encuentro que en la columna C de
una tupla hay un NULL, entiendo de inmediato que el valor de C no está
disponible para esa tupla. Tu dogma requiere que vea si en Z existe un
registro donde Z.PK = X.PK para saber si el valor de C está o no está
disponible, o que reemplace el select anterior por SELECT X.*, Z.C FROM X
LEFT JOIN Z ON X.Clave = Z.Clave, para obtener lo mismo (incluyendo el NULL)
que habría obtenido con el primer select.

Sigue llamándome cosas y recomendándome libros, porque sigo sin ver las
ventajas de tu propuesta.


Salud!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida