Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2011, 10:10
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: 17 años
Puntos: 2658
Respuesta: Distintas llaves foráneas en el mismo campo?

En primer lugar, tienes que considerar que "Telefono" no es una entidad abstracta, sino un atributo de una entidad determinada, y esto implica que existe una dependencia funcional entre ambas cosas.
También significa que no puedes separar el teléfono de un Cliente y abstraerlo como si su existencia fuese neutral. No. La existencia de esa tabla relacionada con el Cliente no se origina en su calidad de telefono sino por normalización de bases de datos, que es un problema completamente diferente. En estos casos, y por más que te parezca redundante, los teléfonos dependientes de las instancias de una entidad se crean como tablas independientes entre sí. No pueden compartirse entre diferentes tablas.
Sé que este nivel de abstracción puede parecerte extraño, precisamente porque se trata de una visión diferente a la de la programación orientada a objetos. Esto se debe a que son temas que sólo se estudian en Bases de Datos en la universidad, y raramente tratados en los tutoriales con mucha profundidad.
Si luego estos teléfonos se modelan en el modelo de clases programadas como un sólo objeto, es un tema totalmente diferente, porque no existe necesidad de que los modelos de clases y el modelo de datos sea iguales ya que no representan la misma visión de la realidad. Son diagramas y visualizaciones interrelacionados del sistema, pero a la vez independientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)