Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2011, 15:33
Avatar de halexander
halexander
 
Fecha de Ingreso: abril-2010
Ubicación: En algun lugar de mexico xD
Mensajes: 59
Antigüedad: 14 años, 7 meses
Puntos: 0
Llaves primarias y foraneas

Hola a todos¡¡ tengo una duda existencial xD jiji

Me gustaria saber si puedo tener llaves primarias y foraneas de tipo char.

Segun aqui veo ps sip, pero como es su funcionamiento?? Siempre crei que solo podia ser int las llaves, ya que son autonumericas y se ira incrementando el numero sin duplicarlo. Gracias¡¡

Ejemplo:

Código MySQL:
Ver original
  1. CREATE TABLE TRABAJA_EN
  2.     (DniEmpleado        CHAR(9)     NOT NULL,
  3.      NumProy        INT         NOT NULL,
  4.      Horas          DECIMAL(3,1)        NOT NULL,
  5.     PRIMARY KEY(DniEmpleado, NumProy),
  6.     FOREIGN KEY(DniEmpleado) REFERENCES EMPLEADO(Dni),
  7.     FOREIGN KEY(NumProy) REFERENCES PROYECTO(NumProyecto) );

Tabla con la que conecta:

Código MySQL:
Ver original
  1. CREATE TABLE EMPLEADO
  2.     (Nombre VARCHAR(50)     NOT NULL,
  3.      Apellido1  VARCHAR(50),
  4.      Apellido2  VARCHAR(50)     NOT NULL,
  5.      Dni        CHAR(9)     NOT NULL,
  6.      FechaNac   DATE,
  7.      Direccion  VARCHAR(50),
  8.      Sexo       CHAR,
  9.      Sueldo     DECIMAL(10,2),
  10.      SuperDni   CHAR(9),
  11.      Dno        INT         NOT NULL,
  12.     PRIMARY KEY(Dni),
  13.     FOREIGN KEY(SuperDni) REFERENCES EMPLEADO(Dni) );

La otra tabla con la que conecta:

Código MySQL:
Ver original
  1. CREATE TABLE PROYECTO
  2. (NombreProyecto VARCHAR(50)     NOT NULL,
  3.      NumProyecto        INT         NOT NULL,
  4.      UbicacionProyecto  VARCHAR(50),
  5.      NumDptoProyecto    INT         NOT NULL,
  6.     PRIMARY KEY(NumProyecto),
  7.     UNIQUE(NombreProyecto),
  8.     FOREIGN KEY(NumDptoProyecto) REFERENCES DEPARTAMENTO(NumeroDpto) );