Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda foránea repetida

Estas en el tema de Duda foránea repetida en el foro de Mysql en Foros del Web. Cómo vamos? Ando haciendo un DER, y resulta que una tabla debe poseer id de dos ciudades que actuan como FK. La idea sería esta: ...
  #1 (permalink)  
Antiguo 06/01/2010, 13:45
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Duda foránea repetida

Cómo vamos?

Ando haciendo un DER, y resulta que una tabla debe poseer id de dos ciudades que actuan como FK. La idea sería esta:

Código:
tabla_ciudad
--------------------------
id_ciudad ( PK )
nombre_ciudad
La tabla que necesita repetida la ciudad la llamo "tarifario":

Código:
tabla_tarifario
--------------------------
id_tarifario (PK)
id_ciudad_cargue ( FK de ciudad )
id_ciudad_descargue ( FK de ciudad )
Ahora bien, si le aplico integridad referencial, tendría dos FK apuntando a la misma tabla.

Creo en mi parecer, que habrá un redundancia, o tendría problemas al hacer los joins... o no sé. Cómo ven este caso?

Mas que de mysql, creo que es de diseño de DB... Si lo consideran, muevan el post a donde consideren.

Saludos y de antemano gracias!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 06/01/2010, 13:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda foránea repetida

No hay redundancia, aunque apunten a la misma tabla, porque el dominio del campo es diferente (en uno el universo de dominio es "todas las ciudades donde se procedió a cargar", y el otro "todas las ciudades donde se procedió a descargar").
El hecho de que en ambos casos la ciudad fuese la misma, es irrelevante, porque siguen expresando hechos diferentes.
Lo que haces con esta relación es asegurarte de que el dato ingresado se corresponda con un dato válido.

Imaginate que se trata de ciudad de nacimiento y ciudad de residencia... El hecho que ambas sean ciudades es irrelevante, porque el dato no expresa la misma información.

¿Se comprende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/01/2010, 13:57
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Duda foránea repetida

Sí entiendo perfectamente...

Osea que ese caso se puede repetir "n" veces y es irrelevante va?

Saludos y gracias por tu respuesta
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 06/01/2010, 14:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda foránea repetida

En tanto el dato sea válido y esos datos no sean PK en tarifario, no importa, porque la integridad de la relación sigue siendo válida.
Lo que no puedes hacer es un índice UNIQUE con ambos campos sobre esa tabla, porque eventualmente se dará que haya dos viajes con igual orien y destino.
El sentido de esas relaciones es no generar redundancia de datos de la CIUDAD en TARIFARIO. Por eso se usan FK, para no poner nombres, lugares, etc.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/01/2010, 14:09
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 3 meses
Puntos: 70
Respuesta: Duda foránea repetida

Sí sí, queda claro...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Etiquetas: repetida
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.