MySQL Store Relationship (Family) Tree

Necesito construir un árbol genealógico en PHP y MySQL. Estoy bastante sorprendido por la falta de software de construcción de árbol genealógico html personalizable de código abierto que existe, pero estoy divagando. He pasado mucho tiempo leyendo sobre el almacenamiento de diagramas MySQL y árboles genealógicos. Todo tiene sentido para mí: tener una tabla con nodos (personas) y una tabla con bordes (relaciones).

El único problema que tengo es que no estoy seguro de la mejor manera de almacenar relaciones que no sean necesariamente adyacentes, por ejemplo, relaciones entre hermanos y abuelos. Al principio, no pensé que esto sería un gran problema porque puedo hacer cumplir invisiblemente a un padre (todos tienen padres) que resolverían estas conexiones.

Sin embargo, también necesito poder almacenar relaciones que pueden no tener un padre común, como parejas románticas. Todo lo que he leído sugiere una relación padre-hijo, pero como las parejas románticas no comparten un padre común (con suerte), no estoy seguro de cómo almacenarlo en la tabla de bordes. ¿Debo usar una tabla diferente o qué? Si está en la misma tabla, ¿cómo represento esto? Mientras lo haga con relaciones no familiares, también podría hacerlo con la familia.

ara resumir, tres preguntas:

¿Cómo represento relaciones laterales? Si una relación lateral tiene un padre común, ¿cómo lo almaceno? ¿Debería ser esto unafamily bandera en la mesa donde se almacenan otras relaciones laterales? ¿Cómo almaceno las relaciones padre-hijo donde el hijo está a dos o más bordes de distancia (un abuelo), pero el padre inmediato no está disponible?

e agradece cualquier ayuda, y si alguien tiene alguna sugerencia para algún software de creación de árbol genealógico javascript / html, sería maravilloso.

Respuestas a la pregunta(3)

Su respuesta a la pregunta