Tabla con relacciones familiares

Silence

Buenas, estoy creando una base de datos y necesito almacenar en una tabla las personas que son familia y qué relación tienen.

Para ello he creado primero una tabla personas, donde almacenó los datos personales de cada una de ellas. Luego, he creado una tabla familia con los campos ( persona1-relacion-persona2). El campo relación puede tener los valores ( Padre,Madre,Hijo,Hermano,etc..).
Hay alguna forma más optima de hacerlo?

Wasd

A mi me parece bastante óptima. Lo único, yo haría la FK de la ID (en vez de que el valor sea "Hijo", que sea la ID de "Hijo").

1
Amazon

Con ambos sistemas deberías meter la información duplicada, no ?

Cuando metes que A es hijo de B, tienes que meter también que B es padre de A, digo yo

1 respuesta
Silence

#3 Si, habría información duplicada. Por eso no me termina de convencer... pero por el momento no se me ocurre otra manera de hacerlo xD

RaymaN

No tiene por qué haber información duplicada. Si tienes que A es hijo de B, con otra consulta sabes que B es padre de A.

1
Silence

Cierto, sera cuestión de comprobarlo mediante otra consulta para evitar duplicar datos. Gracias ;)

eXtreM3

Yo pondría (así sin pensar en detalle) únicamente la tabla personas, te ahorras la tabla relación entera. Añades el campo madreId y padreId y listo, todos tenemos padre y madre, y a partir de ahí sacas tus hermanos, primos (hijos de los hermanos de tus padres), etc etc.

1 respuesta
Amazon

#7 y si tienes que A es primo de B pero no sabes quiénes son los padres de ambos? Creas personas fantasma ?

1 respuesta
eXtreM3

#8 eso ya es dependencia de estructura. Lo que yo planteaba va de arriba a abajo, de padres a hijos.

Lo que tú planteas son relaciones abiertas, en plan A es tío-abuelo de B, y a su vez B es sobrino-nieto de A. Si lo que quieres es eso, y poder decir que A es primo 2º de B sin conocer ni padres ni tíos, pues sí, es necesaria la tabla relación.

1 respuesta
Amazon

#9 no sé las necesidades de #1, yo sólo planteo posibles casos :P

Usuarios habituales

  • Amazon
  • eXtreM3
  • Silence
  • RaymaN
  • Wasd