Estoy haciendo una BD de 0 y es bastante grande y quería que estuviera bien diseñada.
El problema que me encontré, es, que acabo de crear la primera tabla pero no me hace ni caso a la propiedad "not null".
Veamos este ejemplo.
usuario
• id_usuario (int autoincremental primary key)
• apodo (varchar 255 NO NULO y UNIQUE)
• nombre_completo (varchar 255)
• password (varchar 255 NO NULO)
Pues bien, creo la tabla desde PHPMyAdmin, hasta ahí todo bien, en el apartado nulo en apodo y password se lo marco y en los otros no, porque imagino que por defecto querrá decir que acepta nulos.
Por probar de ver que me da el error intento añadir un registro con todo en blanco... y me lo añade perfectamente. Con algunos campos en not null y otros no. No entiendo nada.
Estoy dandole vueltas y probando cosas y no hay manera. Además, en los que le marco el checkbox, sino meto nada en lugar de dar error me añade NULL en la casilla, pero el registro lo añade igual.
Por cierto, en cuanto al UNIQUE para un campo PRIMARY KEY ya lo da por hecho no? no hace falta decirle también unique.
Para más info la base de datos es MySQL por supuesto y uso el motor InnoDBl.
También he probado así y el resultado es el mismo, al intentar añadir datos con todos los campos en blanco (desde el propio phpmyadmin) te deja añadirlos igual, sólo que en algunos te pone NULL y otros salen en blanco.
Código SQL:
Ver originalCREATE TABLE `gestion_clientes`.`usuario` (
`id_usuario` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`apodo` VARCHAR(255) NOT NULL ,
`password` VARCHAR(255) NOT NULL ,
`nombre_completo` VARCHAR(255) NULL ,
PRIMARY KEY (`id_usuario`) ,
UNIQUE INDEX `apodo_UNIQUE` (`apodo` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;