Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/09/2012, 13:10
eybel
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 14 años, 10 meses
Puntos: 16
Respuesta: Como crear 2 tablas con foreign key. Conectado campos que no son PRIMARY K

Si me di cuenta de eso, y llegue a poner la FK en la tabla "cuentas" asi:

create table clientes (
id INT NOT NULL AUTO_INCREMENT,
clientes_id VARCHAR (100),
name VARCHAR (50),
lastname VARCHAR (50),
bdate DATE,
sex CHAR (1),
email VARCHAR (100),
phone INT (20),
street VARCHAR (100),
apt CHAR(7),
city VARCHAR (50),
state CHAR (2),
zipcode SMALLINT (10),
ethnicity CHAR (20),
PRIMARY KEY (id)
);

create table cuentas (
cuentas_id INT NOT NULL AUTO_INCREMENT,
clientes_id VARCHAR (100) ,

company VARCHAR (100),
aname VARCHAR (100),
phone VARCHAR (100),
email VARCHAR (100),
debt INT,
status VARCHAR (100),
PRIMARY KEY (cuentas_id),
FOREIGN KEY (clientes_id) REFERENCES cuentas (clientes_id)

);

Pero si quiero conectar la tabla "Clientes" con la tabla "Cuentas" con la regla que mencionaste. "cuentas" me quedaria asi:

create table cuentas (
clientes_id VARCHAR (100) ,
company VARCHAR (100),
aname VARCHAR (100),
phone VARCHAR (100),
email VARCHAR (100),
debt INT,
status VARCHAR (100),
FOREIGN KEY (clientes_id) REFERENCES clientes (clientes_id)
);

Aca estoy poniendo como FK el id del clientes. Sigo haciendo algo mal. Tengo que poner Primary Key en las 2 tablas? o en una tabla PRIMARY KEY Y EN LA OTRA NO MAS FOREIGN KEY? ya me confundi mas.

Yo tengo entendido que todas las tablas necesitan PRIMARY KEY y que para conectarlas necesito un FOREIGN KEY en la TABLA HIJO