Автор Тема: создание и сортировка дерева  (Прочитано 4483 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GrAfF

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
создание и сортировка дерева
« : 13 Февраля 2004, 14:58:34 »
Привет!
С XML вроде разобрался. Но мы снова не ищем легких путей. :)

Нужно как-то научиться создавать, использовать и редактировать такую штуку. Предположим, разделы сайта. Похоже на вложенные директории. Карта.

корень
_часть1
__раздел1
___раздел1.1
__раздел2
_часть2
__раздел1

Смысл в том, что каждому(ой) разделу (части) приписывается некий уникальный UID, который потом указывается в свойствах объектов, "содержащихся" в этих разделах. В соответствии с этой картой объекты обрабатываются.

Вопросы.
1. В чем хранить базу? SQL нельзя. Предположим, типа-XML.

_
__
___
____
___

__

__
___
__



2. Как сделать навигацию по дереву? Т.е. как, например, получить текстом то-то вроде:
-------------
1
_sfdfg
__jkyut
__fght
-------------

3. Как произвольно менять порядок следования одноранговых записей, чтобы они шли не по алфавиту и не в порядке нахождения в XML?

4. Как делать наследование параметров, чтобы неуказанный параметр брался от чуть более близкого к корню элемента? Например, style.

5. Как объединять разные объекты в группы?


Какая-то муть получилась. В общем, помогите советами, как организовать дерево произвольной степени вложенности.
Проблема в том, что одна часть сайта можеть быть очень простой, можно html просто в корень покидать. Вторая же нуждается во влженных папках, при этом некоторые html неплохо бы группировать по смыслу, а не расположению.

При этом одна часть не должна никак перекликаться с другой. То есть два дизайна, две карты и т.д. Но не писать же два движка. Нужно как-то в одну базу всё. И общая статистика, модерация.


Понимаю, что непростая штука. Формат хранения, IMHO, неплохой. Но как организовать именно работу с объектами, указывать наследственность, т.д. что-то придумать не могу.

В общем, рад любой помощи. Если это тупо - подскажите пару красивых идей. Желательно опять-таки без чужих или сложных модулей.

Отмазки: SQL низя. Да, делать нечего, пишу движок сайта. Для себя. Чтобы научиться. Сайт не коммерческий и делается для души.

add: Один из самых мощных вопросов - как это хранить в скрипте, забивать ли в массивы, хэши и т.д. и какии методами обрабатывать. Поэтому-то это в Perl я и повесил.
« Последнее редактирование: 13 Февраля 2004, 15:23:47 от GrAfF »
WBR, GrAfF.

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
создание и сортировка дерева
« Ответ #1 : 13 Февраля 2004, 17:14:44 »
Цитировать
GrAfF:
2. Как сделать навигацию по дереву? Т.е. как, например, получить текстом то-то вроде:
-------------
1
_sfdfg
__jkyut
__fght


Что именно ты имеешь ввиду под навигацией? И что есть "sfdfg" и т.д.?


Цитировать
3. Как произвольно менять порядок следования одноранговых записей, чтобы они шли не по алфавиту и не в порядке нахождения в XML?

Смотря КАК ты будешь строить дерево. Самое простое, наверное, прилепить объекту свойство типа ранга (номера).


Цитировать
4. Как делать наследование параметров, чтобы неуказанный параметр брался от чуть более близкого к корню элемента? Например, style.

Это уже вопрос по работе алгоритма. Которого нет.


Конкретизируй вопросы - будут ответы.
 BlueJacking среди нас

Оффлайн GrAfF

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
создание и сортировка дерева
« Ответ #2 : 14 Февраля 2004, 00:08:46 »
Цитировать
Что именно ты имеешь ввиду под навигацией? И что есть "sfdfg" и т.д.?

1
_sfdfg
__jkyut
__fght

В index.html раздела, у которого UID sfdfg нужно бы выдать линки на fght и jkyut. То есть вложенные. А в карте сайта показать всё, что входит в 1, т.е. все три.

Вообще в голове каша, поэтому вопросы чуть расплывчатые. Алгоритм чуть зависит от реализации, реализация от алгоритма...
Цитировать
Конкретизируй вопросы - будут ответы.

Нет ничего конкретного. Нужно мощное дерево, которое может выполнить некоторые задачи. Чтобы раз написать скрипт, базу и front-end к нему. Поэтому и написал всё что придумалось, может быть это можно решить намного проще.
WBR, GrAfF.

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
создание и сортировка дерева
« Ответ #3 : 14 Февраля 2004, 00:53:01 »
Цитировать
GrAfF:
Нет ничего конкретного

Вот. Это основная фраза всей темы. Если ты сам не знаешь что тебе нужно, как мы сможем тебе помочь?

Цитировать

Нужно мощное дерево

я так понимаю, в данном контексте, дерево - структура данных. тогда что значит мощное - с большой вложенностью и большим количеством ответвлений?
 BlueJacking среди нас

Оффлайн GrAfF

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
создание и сортировка дерева
« Ответ #4 : 14 Февраля 2004, 13:11:35 »
metton, в общем, нужны рубрики с настройками. Зачем?
1. Автоматическое создание директорий этих рубрик на сервере с обновлением навигации и карты сайта.
2. Генерация файлов внутри директорий с дизайном, который прописан в настройках рубрики.

Т.е. создание базы - дерева рубрик и работа с ней. Плюс есть база текстов, каждый из которых будет привязн к нужной рубрике с помощью некотого уникального номера рубрики.

Наверное, вся проблема в том, что нужна вложенность директорий. И настройки дизайна...
WBR, GrAfF.

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
создание и сортировка дерева
« Ответ #5 : 14 Февраля 2004, 18:21:36 »
Самое простое дерево: каждой категории кроме своего идентификатора прилепляешь родительский.
 BlueJacking среди нас

Оффлайн GrAfF

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
создание и сортировка дерева
« Ответ #6 : 14 Февраля 2004, 21:32:37 »
metton, а можешь подкинуть ещё парочку советов? О релизации и алгоритмах. Немного "что" и чуть "как". Формат хранения - наверное XML вроде приведённого выше. А дальше?

Есть ещё мысль. Раскидать по диркам файлы настроек, а обрабатывать всё сканером дирок. По сравнению с базой, кажется чуть проще с точки зрения синхронизации базы.

В общем, завяз.
WBR, GrAfF.

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
создание и сортировка дерева
« Ответ #7 : 14 Февраля 2004, 22:00:33 »
GrAfF
Вот почитай, мы тут обсуждали это вопрос: http://flasher.ru/forum/showthread.php?s=&threadid=40267&highlight=dead+brain
Там и линки кое-каие есть
 BlueJacking среди нас

Оффлайн GrAfF

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
создание и сортировка дерева
« Ответ #8 : 16 Февраля 2004, 02:35:02 »
metton, спасибки. Сходил, посмотрел, нашел что почитать.

Вот интересные линки, если кто то же потом будет искать:
http://myphp.net.ru/lessons/index.php?18
http://detail.phpclub.net/article/db_tree
http://www.webscript.ru/stories/03/10/22/6752491
WBR, GrAfF.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28