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

[SOLUCIONADO] Duda sobre Constraint e indices!

Estas en el tema de Duda sobre Constraint e indices! en el foro de Mysql en Foros del Web. Como están? Estoy practicando con el tema integridad referencial, y tengo una duda sobre CONSTRAINT. Mi problema es con el indice creado al utilizar constraint. ...
  #1 (permalink)  
Antiguo 01/03/2014, 12:30
 
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Duda sobre Constraint e indices!

Como están?

Estoy practicando con el tema integridad referencial, y tengo una duda sobre CONSTRAINT.

Mi problema es con el indice creado al utilizar constraint. Veo varios ejemplos y la gente utiliza diferentes métodos.

Bien mi duda es la siguiente, que método de los 2 que dejo debajo es "más" recomendado.

O si hay mucha diferencia entre ambos método explicarme cual es especificamente porque no logro verla de manera detallada.

Este es el primero como pueden ver identifico un índice para la columna tipo_usuario

Código MySQL:
Ver original
  1. CREATE TABLE tipo_usuario(
  2.     id_tipo_usuario INT UNSIGNED AUTO_INCREMENT,
  3.     descripcion VARCHAR(8),
  4.     PRIMARY KEY(id_tipo_usuario),
  5. ) ENGINE=innodb DEFAULT CHARACTER SET =utf8 COLLATE=utf8_spahish_ci;
  6.  
  7. CREATE TABLE usuarios(
  8.     id_usuario INT UNSIGNED AUTO_INCREMENT,
  9.     usuario VARCHAR(20) NOT NULL,
  10.     contrasena VARCHAR(64) NOT NULL,
  11.     nombre VARCHAR(20) NOT NULL,
  12.     apellido VARCHAR(20) NOT NULL,
  13.     mail VARCHAR(50),
  14.     tipo_usuario INT UNSIGNED,
  15.     id_local INT UNSIGNED,
  16.     esadmin INT DEFAULT '0',
  17.     puntos INT DEFAULT '0',
  18.     PRIMARY KEY(id_usuario),
  19.     UNIQUE usuario(usuario),
  20.     UNIQUE correo(email),
  21.     INDEX nombre(nombre),
  22.     INDEX fk_tipo_usuario_1(tipo_usuario),
  23.     CONSTRAINT tipo_usuario
  24.         FOREIGN KEY(tipo_usuario)
  25.         REFERENCES tipo_usuario(id_tipo_usuario)
  26.         ON DELETE NO ACTION
  27.         ON UPDATE NO ACTION
  28. ) ENGINE=innodb DEFAULT CHARACTER SET =utf8 COLLATE=utf8_spahish_ci;

Aquí no se identifica el índice antes de constraint sino que se hace directamente en el constraint
Código MySQL:
Ver original
  1. CREATE TABLE tipo_usuario(
  2.     id_tipo_usuario INT UNSIGNED AUTO_INCREMENT,
  3.     descripcion VARCHAR(8),
  4.     PRIMARY KEY(id_tipo_usuario),
  5. ) ENGINE=innodb DEFAULT CHARACTER SET =utf8 COLLATE=utf8_spahish_ci;
  6.  
  7. CREATE TABLE usuarios(
  8.     id_usuario INT UNSIGNED AUTO_INCREMENT,
  9.     usuario VARCHAR(20) NOT NULL,
  10.     contrasena VARCHAR(64) NOT NULL,
  11.     nombre VARCHAR(20) NOT NULL,
  12.     apellido VARCHAR(20) NOT NULL,
  13.     mail VARCHAR(50),
  14.     tipo_usuario INT UNSIGNED,
  15.     id_local INT UNSIGNED,
  16.     esadmin INT DEFAULT '0',
  17.     puntos INT DEFAULT '0',
  18.     PRIMARY KEY(id_usuario),
  19.     UNIQUE usuario(usuario),
  20.     UNIQUE correo(email),
  21.     INDEX nombre(nombre),
  22.     CONSTRAINT fk_tipo_usuario_1
  23.         FOREIGN KEY(tipo_usuario)
  24.         REFERENCES tipo_usuario(id_tipo_usuario)
  25.         ON DELETE NO ACTION
  26.         ON UPDATE NO ACTION
  27. ) ENGINE=innodb DEFAULT CHARACTER SET =utf8 COLLATE=utf8_spahish_ci;
  #2 (permalink)  
Antiguo 01/03/2014, 13:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda sobre Constraint e indices!

No exsiste un "más recomendado". Depende de lo práctico que sea para ciertos casos.
En esencia no es relevante, porque el campo se crea como indice si los haces FK de todos modos.
__________________
¿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 01/03/2014, 13:39
 
Fecha de Ingreso: septiembre-2012
Mensajes: 17
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Duda sobre Constraint e indices!

Muy agradecido, realmente tu respuesta era la que suponía pero más vale asegurarse con los que realmente saben, me resulta mucho más cómodo escribir el código de la segunda manera por lo que si no hay una diferencia sustancial, creo que será la que utilice.

Etiquetas: constraint, null, usuarios
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 12:57.