Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

PHPMyAdmin definir campos no nulos

Estas en el tema de PHPMyAdmin definir campos no nulos en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/11/2012, 02:27
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
PHPMyAdmin definir campos no nulos

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 original
  1. CREATE  TABLE `gestion_clientes`.`usuario` (
  2.   `id_usuario` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  3.   `apodo` VARCHAR(255) NOT NULL ,
  4.   `password` VARCHAR(255) NOT NULL ,
  5.   `nombre_completo` VARCHAR(255) NULL ,
  6.   PRIMARY KEY (`id_usuario`) ,
  7.   UNIQUE INDEX `apodo_UNIQUE` (`apodo` ASC) )
  8. ENGINE = InnoDB
  9. DEFAULT CHARACTER SET = utf8
  10. COLLATE = utf8_general_ci;

Última edición por alyciashape; 27/11/2012 a las 02:35
  #2 (permalink)  
Antiguo 27/11/2012, 03:10
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: PHPMyAdmin definir campos no nulos

Cita:
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.
Blancos no son nulos. Son espacios en blanco.
Prueba ponerle NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/11/2012, 03:35
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: PHPMyAdmin definir campos no nulos

Quiero decir que le doy a insertar nuevo, no pongo nada en ningún campo y me lo inserta igual. Los resultados son esos. Que me crea un registro y en algunos pone NULL y en otros no.

Ahora probaré añadiendo desde PHP a ver si es que con phpmyadmin te añade esos espacios en blanco.

Gracias.
  #4 (permalink)  
Antiguo 27/11/2012, 03:47
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: PHPMyAdmin definir campos no nulos

Cita:
Quiero decir que le doy a insertar nuevo, no pongo nada en ningún campo y me lo inserta igual. Los resultados son esos. Que me crea un registro y en algunos pone NULL y en otros no.
Postea la sentencia que phpMyadmin crea.
Ese front-end no es lo mejor que hay para esta etapa de trabajo, y también genera errores.
No te olvides que poner NULL entre apostrofes no es poner NULL en la tabla, sino una cadena de texto que dice eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/11/2012, 04:25
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: PHPMyAdmin definir campos no nulos

Efectivamente, al darle a añadir un registro PHPMyadmin en lugar de NULL pone '' . No le encuentro el sentido a por qué hacer eso. Para algo pones las restricciones no?

Ahora estoy probando con MySQL Workbench para crear el modelo ER y de paso te crea las tablas (también tengo que documentar el ER) pero lo encuentro bastante (por no decir muy) lento.
Gracias gnzsoloyo, al menos se que las tablas están bien creadas.

Con el Workbench me ha llamado la atención que si tengo este caso:
tabla1 y tabla2 con relacion de muchos a muchos

pues automáticamente te genera la tabla1_has_tabla2 así:
idtabla1 PK
idtabla2 PK

Eso es suficiente? Yo siempre lo hice así:
idtabla1_has_2 PK
idtabla1
idtabla2

Una cosa más, que front-end utilizarías tu?

Saludos.

Última edición por alyciashape; 27/11/2012 a las 04:40
  #6 (permalink)  
Antiguo 27/11/2012, 04:53
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: PHPMyAdmin definir campos no nulos

Para desarrollo, justamente el MySQL Workbench. Una vez que lo dominas es excelente.
Respecto a la tabla relacional, si eso es suficiente, porque lo que NO debe llevar en otro ID, ya que la PK se crea con las dos FK relacionadas.
Sólo se necesitaría añadir un atributo discriminante (y jamás un ID autoincremental) si y sólo si la relación entre ambas tablas puede tener una cardinalidad N (el mismo par de claves relacionadas más de una vez), pero en ese caso el atributo debe ser parte de la relación (subitem, fecha y hora, otros identificadores).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/11/2012 a las 06:31

Etiquetas: campos, definir, nulos, php, phpmyadmin, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:37.