Как лучше построить генеалогическое дерево?

Подскажите, как лучше построить дерево.
Проблемы нет сделать на костылях, интересует как бы сделать правильнее и чтоб потом меньше спрашивать у базы (Postgresql).

Проблема:
Объект может иметь двух родителей и сколько угодно детей

Пока видел готовые решения с одним родителем. Что-то упустил из виду? В идеале бы ruby/rails gem, но достаточно какого то алгоритма. Или SQL запрос увидеть. Я с ним пока на вы :)
Думается получать из базы что-то вроде:
id;name;lvl;gender;father_id;mother_id
и это уже использовать для построения на странице.
Особенных требований нет, не страшно получить кольцо, достаточно 3 поколений.
upd: Может не то ищу вообще? Может не алгоритм дерево, а я? :)
  • Вопрос задан
  • 1267 просмотров
Пригласить эксперта
Ответы на вопрос 2
IIISpikerIII
@IIISpikerIII
Удобно для хранения древовидных структур использовать вложенные множества, объяснение принципа можно посмотреть phpclub.ru/detail/article/db_tree.

Минус такого подхода в том, что при каждом добавлении элемента в дерево, изменения коснутся большого числа строк. Но плюсом будет быстрый поиск и навигация при минимальном количестве обращений к базе
Ответ написан
Комментировать
honor8
@honor8
Принципы быстродействия VBA в описании
Как правильно нарисовать генеалогическое дерево. С родословной сложнее, - ведь когда вы женитесь, придётся строить ещё одно генеалогическое дерево, и как-то ограничивать вывод данных.
Построение зависимостей:-1.jpg
Для создания связей достаточно указать родителей, остальное соединять логикой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы