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.
y no
porque esta segunda forma esconde el error si pasa esto: