Inicio Foro Pregunta
Pepe Beto Alvaro Gutiérrez 2016-07-07 08:33:09
Pregunta abierta

Relación de muchos a muchos en mysql

Hola! que tal, he estado intentado hacer la relacion de muchos a muchos pero me marca error, le mostrare como lo estoy haciendo.

create table tusuario
(
idUsuario int auto_increment,
correoEelectronico varchar (100) not null,
contrasenia varchar (700) not null,
fechaRegistro datetime not null,
fechaModificacion datetime not null,
primary Key(idUsuario)
);



create table tdepartamento
(
idDepartamento int auto_increment,
idUsuario int not null,
nombreDeparatmento varchar(100) not null,
fechaRegistro datetime not null,
fechaModificacion datetime not null,
foreign key(idUsuario) references tusuario(idUsuario),
primary key(idDepartamento)
);



create table tusuariodepartamento
(
idUsuarioDepartamento int auto_increment,
foreign key(idUsuario) references tusuario(idUsuario),
foreign key(idDepartamento) references tdepartamento(idDepartamento)
);


Base de datos MySql

Respuestas

Debes iniciar sesión para poder responder a esta pregunta.
MEJOR RESPUESTA SELECCIONADA POR EL AUTOR

Hola José

la sintaxis debería ser así:

CREATE TABLE tusuariodepartamento
(
idUsuarioDepartamento INT AUTO_INCREMENT,
idUsuario INT NOT NULL,
idDepartamento INT NOT NULL,
FOREIGN KEY(idUsuario) REFERENCES tusuario(idUsuario),
FOREIGN KEY(idDepartamento) REFERENCES tdepartamento(idDepartamento),
PRIMARY KEY(idUsuarioDepartamento)
);

Ahora, para serte sincero, no entiendo el por qué de la existencia de esta tercera tabla, ya que en la tabla tdepartamento ya tienes la relación del departamento con el usuario.

Es una redundancia en el diseño.

Saludos!

Me gusta (2)

Hola José, fíjate que en la tercera tabla declaras los FK pero no agregaste los campos del enlace.

create table tusuariodepartamento
(
idUsuarioDepartamento int auto_increment,
foreign key(idUsuario) references tusuario(idUsuario),
foreign key(idDepartamento) references tdepartamento(idDepartamento)
);

debería quedar de la siguiente manera:

create table tusuariodepartamento
(
idUsuarioDepartamento int auto_increment,
idUsuario int not null,
foreign key(idUsuario) references tusuario(idUsuario),
foreign key(idDepartamento) references tdepartamento(idDepartamento)
);

Saludos.

Me gusta (1)

Exacto, como dice Gustavo, me faltó ponerle el PK y eso también te falta a ti José!

Saludos.

Me gusta (2)