Closed hbkim94 closed 5 years ago
Hola!
Cómo bien dices puedes usar la misma llave foránea en dos tablas. En realidad lo que estas haciendo es referenciar a la misma columna id
de la tabla regiones
en la tabla parques
y en la tabla viñas
.
Ahora bien, al crear las tablas sí puedes llamar de la misma manera a esa llave foránea y no habría ningún problema en la base de datos. Sin embargo, no es buena practica en tu modelación ya que podría llevarte a confusiones futuras. Un ejemplo de lo que podrías hacer seria lo siguiente,
CREATE TABLE Parques(
id_parque int, id_region_p int,
PRIMARY KEY(id_parque),
FOREIGN KEY(id_region_p) REFERENCES Regiones(id),
)
CREATE TABLE Viñas(
id_viña int, id_region_v int,
PRIMARY KEY(id_viña),
FOREIGN KEY(id_region_v) REFERENCES Regiones(id),
)
En este caso la columna id
de la tabla regiones
es referenciada con un nombre diferente en las dos restricciones evitando confusiones.
Espero que te haya quedado claro! Saludos!
Me quedó súper claro, muchas gracias : )
Hola!
Tengo una duda con respecto a llaves foráneas para este caso. Si bien tanto regiones-parques y regiones-viñas son de relación 1:N, no sé si sea correcto poner el id de región como llave foránea para ambas o si podría generarse alguna irregularidad al hacer eso.
Edit: Vi que se podía usar la misma llave foránea pero con "distintos nombres" para los constraint, pero no estoy muy segura a qué se refiere eso. Sería bakán si me lo pudieran aclarar.
De antemano gracias!