Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/12/2012, 06:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Select de de tres tablas.

Cita:
num_usuario no la tengo como primaria porque tengo registros duplicados. Es decir el mismo nº de usuario puede tener varias direcciones.
Bueno, al decirme eso me estás confirmando que tu base está mal planteada, pero además que no tienes claro lo que es una FK.
Yo no estoy diciendo que num_usuario pueda ser PK de dir_usuario, sino que num_usuario debe ser FK (foreign key) de dir_usuario, que es algo completamente diferente.
Al definir a num_usuario como FK en dir_usuario lo que sucede es que se mantiene una integridad completa de datos entre un usuario determinado y cada una de sus direcciones, que pueden ser N direcciones, pero en el contexto de tu caso puedes perfectamente poner una dirección con un num_usuario inexistente, porque la base no puede asegurar por si misma la integridad y consistencia de ese dato.
Ahora bien, en el caso de al tercera tabla, si avisos_wed se debe corresponder con un usuario y además con una dirección dada, entonces requiere que ambas PK de cada tabla estén en ella como FK, lo que determinaría completamente la relación y el JOIN sería posible de realizar.
Si la dirección no es determinante, entonces sólo debería ir el num_usuario, pero aún así debería ser FK.

¿Vas entendiendo la lógica del asunto?

Si no defines jamás podrías asegurar la consistencia de los datos, y por ende terminarías teniendo datos-basura.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)