Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/08/2013, 08:30
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Restringir tablas o comprobar desde servidor

Las restricciones NOT NUL en las tablas se deben poner siempre que haya datos obligatorios, para prevenir metidas de pata de los desarrolladores o de los que puedan operar directamente sobre la base.
No se crean por capricho, sino por requerimiento de integridad de datos. Es una forma desde la propia base para proteger estructuralmente la consistencia de la información.
Si esos datos son obligatorios, siempre debes declararlos NOT NULL en la tabla, aunque luego hagas lo mismo en la aplicación.
De ese modo, si hay un fallo de programación en algún momento, y un dato NULL se cuela, de todos modos la base se protegerá a si misma.
Lo que si debes tener en cuenta es que jamás se deben poner valores vacíos entre apostrofes (''), porque eso no es un NULL. es un espacio vacío, que a nivel de datos no es lo mismo.
Asimismo, es una pésima práctica insertar los valores numéricos encerrándolos como cadenas, porque eso esconde errores de parametrización, por ejemplo.
Código MySQL:
Ver original
  1. INSERT INTO tabla (a, b, c, d)
  2. VALUES(1, 2, 3, 4)
y no
Código MySQL:
Ver original
  1. INSERT INTO tabla (a, b, c, d)
  2. VALUES('1', '2', '3', '4')

porque esta segunda forma esconde el error si pasa esto:
Código MySQL:
Ver original
  1. INSERT INTO tabla (a, b, c, d)
  2. VALUES('1', '2', '', '')
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)