[MySQL] Циклическая выборка из базы данных

Тема в разделе "Базы данных", создана пользователем PHPCod3r, 28 сен 2012.

Модераторы: latteo
  1. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Вообщем встала такая проблема, даже точно не знаю как лучше ее реализовать, нужно в базе данных сделать следующие,
     
  2. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    Если я правильно понял задачу, это можно органиовать так:
    создаем таблицу table с полями variable и parent
    в parent будем хранить значение родителя

    parent varaible

    D
    D D_01
    D D_02
    D D_03
    D_01 D_11
    D_01 D_12
    D_01 D_13

    в таком случае, если нужны записи без родителей - выбираем строки с parent = NULL
    если записи без потомков - "SELECT variable FROM `table` WHERE variable not in (SELECT parent FROM `table`)"
     
  3. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.378
    http://habrahabr.ru/post/132558/
    Ты тут не только простым запросом не обойдешся, а, если у тебя там реально много информации, можеш тупо просто на этом примере начать писать алгоритмы таких рассчетов эффективные, которые у тебя как минимум Дуров и Усманов выкупят без вопросов, а потом Волож, Цукинберг и Брин с Пейджем добежать успеют с кучей бабок чтоб выкупить у тебя эти технологии.
    Это просто так тебе, чтоб ты представлял себе масштаб твоего вопроса. По ссылке выше задачка, которая по сравнению с твоей вообще тривиальней некуда.
     
  4. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Да, вы правы, что суть этого алгоритма, грамотный обход дерева, единствено, что деревья у меня не очень большие поэтому, основной вопрос, это то как их лучше держать в БД
     
  5. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.034
    Симпатии:
    2.035
  6. PHPCod3r

    PHPCod3r

    Регистр.:
    7 июн 2010
    Сообщения:
    261
    Симпатии:
    25
    Горбушка нравится это.
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.034
    Симпатии:
    2.035
    PHPCod3r, хотел я скинуть эту статью тоже, но потерял в глубинах закладок... Это один из лучших способов организации деревьев, т.к. отпадает необходимость кэширования и зная 1 элемент можно получить доступ ко всем его родителям/детям... Но, увы и ах, требует 2 запроса к базе на каждый элемент. С деревьями вообще сложно сделать с 1 запросом...

    Ну а вообще, если меняется это дерево редко - можно хранить структуру в кэше и обновлять кэш при изменении чего-либо или если он побился...
     
    PHPCod3r нравится это.