Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/11/2010, 05:46
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Respuesta: Duda sobre relacionamiento entidad fuerte débil.

Cita:
Iniciado por karateonline Ver Mensaje
A) ¿Esta tabla teléfonos es la tabla teléfonos que alojara todos los teléfonos de la base de datos?
Sí, a no ser que tú quieras crear otra para otro tipo de teléfonos.

Cita:
Iniciado por karateonline Ver Mensaje
A.1) ¿En caso esta tabla teléfonos ser especifica, es decir teléfonos_ por_ personas, lleva clave primaria? A.2) ¿O al ser un atributo heredados de otra entidad ya hereda el atributo clave y no necesita una clave?
Sí, debería llevar clave primaria, ya que al poder tener una persona varios teléfonos, el valor de FK_PERSONA se puede repetir para varios teléfonos, por tanto debes crear una clave ID_TELEFONO

Cita:
Iniciado por karateonline Ver Mensaje
B) ¿Alguien me puede mostrar un ejemplo en SQL de cómo escribir la consulta para ver estos teléfonos unidos a los datos de la persona?
Por ejemplo,

Código MySQL:
Ver original
  1. Select P.nombre, P.apellido, P.Documento, T.numero
  2. From Personas P
  3. Left Join Telefonos T on T.FK_PERSONA = P.ID_PERSONA

Usar Left Join en lugar de Join te asegura que si una persona no tiene ningún teléfono también saldrá en esta query, si solo usas Join solo saldrán las personas con algún número de teléfono.

De todas formas, en el caso concreto de teléfonos o email suele ser más sencillo (a mi parecer) tener tres o cinco columnas de la tabla personas (telefono1, telefono2, telefono3, etc.), en otros casos más complejos si se justifica tener una tabla de detalle.