Здравствуйте! Столкнулся с довольно неприятной (на мой взгляд) задачей: организовать хранение и вывод генеалогического древа. В чем суть: есть кто-то, у кого есть отец и мать. У отца и матери также есть отец и мать и так далее. Максимальный уровень вложенности пусть будет равен 8 поколениям Собственно долго и упорно пытался нагуглить какие-либо мысли по поводу того, как оптимальнее всего хранить подобные структуры в реалиционной БД, если учитывать, что чаще всего древо нужно будет показывать. Добавлять новые элементы гораздо реже. Также нужно учитывать, что хранится будет более 100 000 записей. Хочется спросить у сообщества: может быть кто-то сталкивался с такой проблемой? Как хранить, как выводить, как добавлять новые элементы? Какие-нибудь мысли по этому поводу очень хочется увидеть ) Хранить буквально mother_id и father_id как мне кажется чревато, потому как не очень представляю, как нужно будет выбирать записи без рекурсии и кучи запросов к БД (а при таком количестве записей, я думаю, что будет критично) Очень надеюсь на помощь опытных людей
К прочтению http://habrahabr.ru/blogs/development/46659/, http://habrahabr.ru/blogs/development/47280/, а также http://www.propelorm.org/behaviors/nested-set.html
Да читал, читал я это вот только подойдет ли в этой задаче тот же nested sets? И дело в том, что корнем дерева в разных ситуациях может быть абсолютно любая запись