За последние 24 часа нас посетили 18148 программистов и 1655 роботов. Сейчас ищут 1200 программистов ...

генеалогическое древо

Тема в разделе "PHP и базы данных", создана пользователем vladqa, 1 фев 2012.

  1. vladqa

    vladqa Активный пользователь

    С нами с:
    13 янв 2011
    Сообщения:
    27
    Симпатии:
    0
    Здравствуйте!
    Столкнулся с довольно неприятной (на мой взгляд) задачей: организовать хранение и вывод генеалогического древа.
    В чем суть: есть кто-то, у кого есть отец и мать. У отца и матери также есть отец и мать и так далее. Максимальный уровень вложенности пусть будет равен 8 поколениям

    Собственно долго и упорно пытался нагуглить какие-либо мысли по поводу того, как оптимальнее всего хранить подобные структуры в реалиционной БД, если учитывать, что чаще всего древо нужно будет показывать. Добавлять новые элементы гораздо реже.
    Также нужно учитывать, что хранится будет более 100 000 записей.

    Хочется спросить у сообщества: может быть кто-то сталкивался с такой проблемой? Как хранить, как выводить, как добавлять новые элементы? Какие-нибудь мысли по этому поводу очень хочется увидеть )

    Хранить буквально mother_id и father_id как мне кажется чревато, потому как не очень представляю, как нужно будет выбирать записи без рекурсии и кучи запросов к БД (а при таком количестве записей, я думаю, что будет критично)

    Очень надеюсь на помощь опытных людей
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
  3. vladqa

    vladqa Активный пользователь

    С нами с:
    13 янв 2011
    Сообщения:
    27
    Симпатии:
    0
    Да читал, читал я это
    вот только подойдет ли в этой задаче тот же nested sets?
    И дело в том, что корнем дерева в разных ситуациях может быть абсолютно любая запись