Структура данных «Семейное древо»

ужно построить семейное дерево в php и MySQL. Я очень удивлен отсутствием настраиваемого программного обеспечения для построения генеалогических деревьев с открытым исходным кодом, но я отвлекся. Я потратил много времени, читая о хранении орграфов MySQL и генеалогических деревьев. Для меня все имеет смысл: иметь таблицу с узлами (люди) и таблицу с ребрами (отношения).

Единственная проблема, с которой я столкнулся, это то, что я не уверен, что лучше всего хранить отношения, которые не обязательно являются смежными, например, отношения между братом и дедушкой. Сначала я не думал, что это будет большим делом, потому что я могу просто незаметно принудить одного из родителей (у каждого есть родители), который бы разрешил эти связи.

Однако мне также нужно иметь возможность хранить отношения, у которых может не быть общего родителя, таких как романтические партнеры. Все, что я прочитал, предполагает отношения между родителями и детьми, но поскольку романтические партнеры не имеют общего родителя (надеюсь), я не уверен, как сохранить его в таблице границ. Должен ли я использовать другую таблицу, или что? Если это в той же таблице, как мне это представить? Пока я делаю это с незнакомыми отношениями, я мог бы также делать это и с семьей.

Подводя итог, три вопроса:

Как я представляю боковые отношения?Если у боковых отношений есть общий родитель, как мне их сохранить? Должно ли это бытьfamily флаг на столе, где хранятся другие боковые связи?Как сохранить отношения родитель-потомок, где дочерний элемент находится на расстоянии двух или более ребер (дедушка), но непосредственный родитель недоступен?

Любая помощь приветствуется, и если у кого-то есть какие-либо предложения по созданию программного обеспечения для построения генеалогического дерева javascript / html, это было бы замечательно.

Ответы на вопрос(3)

Ваш ответ на вопрос