Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/06/2011, 08:12
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: misma llave FK en otra tabla, ¿algún consejo?

Una relación de parentescos como describes requiere sólo tres tablas, de las cuales únicamente dos tienen datos y la otra es relacional
En esencia tienes dos tablas: Personas y Relación. En la primera registras a las personas y sus datos. Esa tabla lo que tiene es una relación N:N consigo misma, y como toda relación N:N genera una tabla relacional, esta sería Persona_relación.
Según el modelo E-R esa tabla no requiere ID propio, ya que es una tabla dependiente, su ID está dado por las dos FK, definidas al mismo tiempo como PK de la tabla, desde el momento en que no puede aparecer un par relacionado en el mismo orden dos veces. Por dar un ejemplo, Juan no puede ser esposo y hermano de María, por lo cual la relación Juan+María sólo aparece una vez.
Por eso la PK de esa tabla debería ser sólo el ID de la primera persona del par más el ID de la segunda persona del mismo par.
El problema está dado en la identidad de la relación, es decir, en qué es lo que caracteriza a esa relación sobre las otras. Por eso necesita un atributo adicional que bien puede ser un relacion_id, que en realidad sería una FK adicional apuntando a la tabla Relación, la cual debería contener la descripción de las relaciones (hermano, hermana, esposo, esposa, cuñada, tio, abuela, amigo, etc.).

¿Se entiende la idea?

A mi entender estás tratando de inventar el agujero del mate. Este tipo de casos ya se resolvió hace mucho en los modelos de base de las redes sociales, que puedes consultar en Database Answers, por ejemplo:



En este modelo, el rol es la relación, la cual va como FK en Contacts; contact_id es FK de My (la tabla de usuarios), y FK_customer es e definitiva una My_Id que corresponde al contacto, que también es usuario.
En esencia es el mismo esquema, aunque más elaborado.

¿Alcanzas a verlo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)