Древовидные структуры [PHP+MySQL]

Discussion in 'PHP' started by RINDAMAN, 8 Jan 2012.

  1. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    [​IMG]

    "картинка для примера"
    напомню, очень большая дерева будет

    задумался, стоит ли это реализовать в PHP+MySQL или есть лучший способ?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    RINDAMAN реализовывать что? Если вам нужно иметь некий объект языка или расположить такую структуру в базе - то нечего тут реализовывать. Если хочется такие картинки рисовать - то кхм, попробуйте
     
    _________________________
  3. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    нужно иметь некий объект языка или расположить такую структуру в базе

    скрипт с БД
     
  4. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    смысле правильную структуру в MySQl
    и скрипт чтоб для вывода (скрипт можно теоретический если не существует написанных примеров)
     
  5. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    да делай..благославляю

    ид | ид родителя | название

    и выращивайся свои деревья
     
  6. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    теперь вопрос такой рождается

    допустим, есть база
    Code:
    1     | 1   | аа
    2     | 1   | аб
    4001  | 20  | ав
    4002  | 21  | ад
    4497  | 34  | ае
    4498  | 35  | аз
    в какой-то прекрасный день узнаем что пропустили имя "аг", а у нее ид должна быть 4002, как тогда все ИД передвинуть вниз? (и возможно наоборот)
     
  7. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Расставить заново индексы:
    Code:
    ====
    ALTER TABLE table DROP `id`;
    ALTER TABLE table ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
    ALTER TABLE table ADD INDEX (`id`);
    ====
    
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    RINDAMAN ID - никому ничего не должно, это просто идентификатор. Не пытайтесь добавлять какую-то логику, которая обяжет вас хранить идентификаторы в определенном порядке - это гиблая затея
     
    _________________________
  9. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    обычное дерево. id,parent,recursion.
     
  10. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    вообще-то согласен

    а что вы посоветовали бы что-то логичное?
     
  11. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    в моем случае не обычное((
    может вы сможете помочь?
     
  12. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    ну так говори что необычного...тебе уже сказали решение к тому что ты описал
     
  13. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    ну ок. спасибо.
    через несколько дней вернусь в этот топ
     
  14. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    нет тут ничего необычного, а то что «в какой-то прекрасный день узнаем что пропустили имя "аг", а у нее ид должна быть 4002» так бред вообще какой-то. для сортировки нужно использовать другие поля, позиция не должна привязываться к какому-либо идентификатору.
     
  15. red_joker

    red_joker New Member

    Joined:
    4 Nov 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
  16. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    что скажется насчет этого:
    сначала сделать много ветвей а потом их расставить по местам, т.е. построит дерево

    думаю так будет правильно?
     
  17. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    + к этому, время поиска улучиться за счет не большой информации на каждой таблице или может я ошибаюсь
     
  18. RINDAMAN

    RINDAMAN New Member

    Joined:
    6 Jan 2012
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
Loading...
Similar Threads - Древовидные структуры PHP+MySQL
  1. GAiN
    Replies:
    3
    Views:
    7,767
  2. GAiN
    Replies:
    4
    Views:
    6,915
  3. GAiN
    Replies:
    3
    Views:
    7,454