asiii2s 11:27 ‘mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overlow en espatiol
Stack Overflow en espafiol es un sitio de
preguntas y respuestas para x
programadores y profesionales de la
informética, Solo te toma un minuto
registrarte.
Registrate para unirte a esta comunidad
Cualquiera puede formular una pregunta
Cualquiera puede responder
Se vota a favor de las mejores
respuestas, y éstas suben a
los primeros puestos
Referenciar una llave primaria compuesta en otra tabla Como foranea
compuesta
Formulada hace 2 afiosy 7 meses Activa hace 1 afioy 2 meses Vista 3k veces
4. Resulta que estoy desarrollando un ejercicio de un libro de gestidn de bases de datos ya que soy
nuevo en esto y pues para poder darme a entender voy a mostrar el ejercicio y el grafo relacional
2 dela bases de datos:
VW
DW cree un archivo con los comandos SQL necesaios para crear Ia base de datos fga cuyo disefo 0 grafo
telaconsles aparece en el ejemplo 216 el captulo anterior, Use compas autonumarcos pa los sbibutos
identiteadores de jugader y equ.
2» Indque ls comandos necesaros para eliminar todas la estrcciones de clave primariay secundaria mediante
elicomando ALTER.
> Mocinque el atibuto i jugador para que sea un entero normal (0 autonumésice)
} Haga lo necesario para que el campo equipo de la tabla jugador sea clave ajena hacia el campo nombre, de
latabla eauipo.
.) Modifique el tipo del campo nombre en fa tabla equipo para que se llame nombre_equipo y tenga un tamafo
de 120 caracteres, éAfecta esto a la relacién de clave ajena definido anteriormente? Justifique su respuesta.
i | fait ke ees
Una liga de baloncesto se compone de jugadores que pertenecen a equipos los cuales juegan partidos.
'Si un equipo se da de baja en la competicion se eliminan automaticamente sus jugadores. Sin
‘embargo, no se podrd eliminar un equipo mientras haya registros de partidos jugados, bien como local
‘0 como visitante, Si se da de baja un jugador que es capitdn entonces el campo capitén del equipo
itpsiosstackoverflow.com/questions/2 1083/eferenciar-una-tave-prmaria-compuesta-on-otaabla-como-fordnea-compuesta 4sins 11:27 mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta~ Slack Overflow en espatiol
Bien pues estoy desarrollando la primera parte de la actividad en MySql Workbech y pues
necesito referenciar la llave primaria compuesta de la tabla equipo ala tabla partido y que
elocal y evisitante sean la llave primaria de dicha tabla, que se actualizaran dependiendo de los
equipos que vayan a jugar en la tabla equipo. A continuacién escribo lo que yo he desarrollado:
CREATE DATABASE liga;
USE liga;
CREATE TABLE jugadores (
id_jugador INTEGER(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
dni INTEGER(8) UNSIGNED NOT NULL,
rrombre VARCHAR(20) NOT NULL,
apellido VARCHAR(20) NOT NULL,
equipo VARCHAR(28) NOT NULL UNIQUE,
edad INTEGER(3) UNSIGNED NOT NULL,
fecha_alta DATE
de
CREATE TABLE equipo(
d_equipo INTEGER(4) UNSIGNED AUTO_INCREMENT,
nombre VARCHAR(2@) NOT NULL,
‘ciudad VARCHAR(2®) NOT NULL,
Puntos INTEGER(3) UNSIGNED NOT NULL,
Ad_capitan INTEGER(4) UNSIGNED UNIQUE,
PRIMARY KEY (4d_equipo, nonbre)
ds
CREATE TABLE partido(
id_equipo INTEGER(4) UNSIGNED AUTO_INCRENENT,
nombre VARCHAR(20) NOT NULL,
local VARCHAR(20) NOT NULL,
evisitante VARCHAR(28) NOT NULL,
PRIMARY KEY (elocal, evisitante),
CONSTRAINT fk_equipo_partido FOREIGN KEY (elocal, evisitante) references equipo
(ic_equipo, nonbre)
Sin embargo yo intenté seguir un ejemplo que plantea el libro el cual es el siguiente:
ipso stackovertlow.comlquestions/25 1083/eferenciar-una-tave-prmavia-compuesta-on-ctraabla-como-fordnea-compuestaasiii2s 11:27 mysql - Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overflow en espatiol
Yo entiendo que deberia colocarlo de la siguiente manera:
FOREIGN KEY (id equipo, nombre) references equipo (id_equipo, nonbre)
pero si notan la captura de pantalla del ejemplo del libro, no lo plantearon asi sino mas bien
como bien dice ahi: “incluyendo una clave ajena que referencia al campo de la otra tabla” en
resumidas cuentas eso es lo que yo necesito Incluir las claves ajenas " elocal y evisitante " que
referencien los campos" id equipo y nonbre" de la tabla equipo y que ademés los campos elocat
y evisitante sean la llave primaria de la tabla partido tal y como se indica en el grafo relacional.
Disculpen la molestia es que soy nuevo en esto y espero me halla logrado dar a entender.
Muchas Gracias.
mysql sql mysql-workbench
Compartir Mejora esta pregunta Seguir formulada el 2 abr. 19a las 21:49
Bere
57 1 9
1 respuesta “acivo Mas antiguo | Votos
4. Alparecer ya pude crearla exitosamente en Workbench a continuacién dejo el cédigo:
1 CREATE DATABASE Liga;
Use Liga;
Vv CREATE TABLE jugadores (
d_jugador INTEGER(4) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
dni INTEGER(S) UNSIGNED NOT NULL,
nombre VARCHAR(2®) NOT NULL,
apellido VARCHAR(2@) NOT NULL,
equipo VARCHAR(2@) NOT NULL UNIQUE,
edad INTEGER(3) UNSIGNED NOT NULL,
fecha_alta DATE
itpsiosstackoverflow conlquestions/2 1083/eforenciar-una-lave-prmavla-compuesta-on-straabla-como-fordnea-compuestaasiii2s 11:27 ‘mysql Referenciar una lave primaria compuesta en otra tabla Como forénea compuesta- Stack Overiow en espafiol
de
CREATE TABLE equipo(
id_equipo INTEGER(4) UNSIGNED AUTO_INCREMENT,
nombre VARCHAR(2@) NOT NULL,
‘ciudad VARCHAR(2®) NOT NULL,
Puntos INTEGER(3) UNSIGNED NOT NULL,
id_capitan INTEGER(4) UNSIGNED UNIQUE,
PRIMARY KEY (id equipo, nonbre)
d
CREATE TABLE partido(
nombre VARCHAR(2®) NOT NULL,
elocal VARCHAR(2®) NOT NULL,
evisitante VARCHAR(28) NOT NULL,
d_equipo INTEGER(4) UNSIGNED AUTO_INCRENENT,
PRIMARY KEY (elocal, evisitante),
FOREIGN KEV (id equipo, elocal) REFERENCES equipo(id equipo, nonbre),
FOREIGN KEY (id equipo, evisitante) REFERENCES equipo(id_equipo, nonbre)
dy’
A pesar de que nadie respondié, la dejo acd por si alguien la puede llegar a necesitar.
Compartir Mejora esta respuesta Seguir
respondida el 3 abr. 19a las 15:16
Ba screamox02
S719
® Pregunta muy activa. Gana 10 de reputacién (sin contar el bono de asaciacién) para responder a esta pregunta
El requisito de reputacién ayuda a proteger esta pregunta del spam y actividades que no sean respuestas.
itpsiosstackoverflow.com/questions/2 1083ieforenciar-una-tave-primaria-compuesta-on-otaabla-como-fordnea-compuesta 48