направленный граф при построение рубрикатора

clevel

Новичок
направленный граф при построение рубрикатора

пишу систему по выводу информации в определенных каталогах, анпример, мебель, видео, аудио...
так вот, элементы ниже первого уровня могут иметь более, чем один родитель... как вычитал на одном из аналогичных каталогов, это является направленным графом.
возникает ряд вопросов/нюансов:
1.как лучше графически формировать/выводить структуру администратору для редактировать рубрик. Вывод лесенкой не совсем хочется организовывать, так как получается многократное дублирование информации.
3.Возможно зацыкливание при выводе, удалении отдельных рубрик, если есть перекрестная ссылка.
3.При удалении идет последовательное удаление сначала данного элемента, его потомков, их потомков. При наличии определнных ссылок возможен не только бесконечный цикл, но и удаление всех элементов/рубрик.
Кто сталкивался, отзовись!
По поиску не нашел аналогичных тем...
 

kvn

programmer
Сделать аля unix-file-system, есть просто каталоги, в них могут быть каталоги и файлы,
а могут быть linkи (symlinks) на каталоги или файлы.
т.е. нужно где-хранить параметр (ссылка/нет), и соотв. выделять такие УРЛы,
при удалении ссылки на каталог, удаляется _только_ ссылка, при удалении каталога - все его содержимое (надо проследить, чтобы не было ссылок на содержимое).

А выводить деревом вполне вменяемо.

Как вариант.
Удачи.
 

SeazoN

Guest
как вариант 1.01:

фильтровать ответ 'locate /var/www/html/dir/'
на предмет .html index.php .zip ....

и загонять в PEAR::Tree

недостатки есть, но кудаж без них, Locate делает индексацию 1раз в сутки :(
 

kvn

programmer
я, конечно не телепат, но я так понимаю, речь идет о БД.
Это я об этом:
...пишу систему по выводу информации в определенных каталогах, анпример, мебель, видео, аудио...

...т.е. нужно где-хранить параметр (ссылка/нет), и соотв. выделять такие УРЛы,
 

clevel

Новичок
спасибо,kvn, очень красочная и понятная ассоциация с файловой системой. Конечно, все БД, но это - уже дело техники, наличии полей-флагов...
всем спасибо, начинаю кнопать...
 

StUV

Rotaredom
2clevel:
сам сейчас пишу нечто подобное...

из области теории ... короче - целесообразнее (удобство конечного пользователя - потребителя) для такой системы использовать дерево с ненаправленными связями, в котором каждуй узел имеет одного предка (создание основной структуры сайта, меню навигации, и т.п.), а для обеспечения пересвязок между рубриками использовать вспомогательный граф (он может быть как направленным, так и ненаправленным, или вообще комбинированным - в зависимости от конкретики задачи)...

Алгоритмы реализации основных операций на таких структурах давно известны и описаны во множестве книг по теории алгоритмов (потребуется знание основ высшей математике хотябы на уровне мат обозначений)

(сам использую "Алгоритмы: построение и анализ", Т. Кортмен & co... - если есть возможность купить (взять в библиотеке) - очень рекомендую - самому пришлось многое переделывать, чтобы не изобретать велосипед, причем намного низшего качества... )
--------------------------------------------------------------------------------
если провести аналогию с идеей kvn, то - основное дерево - аналог файловой структуры, а вспомогательный граф - таблица сим-линков... (короче - в простейшем варианте в БД для узлов будет не одна таблица, а две)
 
Сверху