отношения между 2 людьми на родословной

Я работаю над небольшим проектом генеалогического дерева (php + mysql) для моих родителей. Поскольку все дерево довольно широкое и не помещается ни на один экран, я бы хотел вместо этого сделать «поиск отношений», способ отобразить отношения между 2 произвольными, возможно, очень отдаленно связанными людьми.

Каждый предок хранится в базе данных со своим личным идентификатором. Каждый человек ($ ancestor [$ id]) имеет 0-2 родителей (int ID) и 0-11 детей (массив с int ID):

int $ancestor[$id]["father"]
int $ancestor[$id]["mother"]
array $ancestor[$id]["children"]

Теперь мне нужно найти кратчайшее соединение между $ ancestor [$ some_id] и $ ancestor [$ another_id] в виде списка идентификаторов между $ some_id и $ another_id.

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

ура

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]