Подскажите по вложенным циклам (поиск алгоритма)

Dodger

Новичок
Подскажите по вложенным циклам (поиск алгоритма)

Ситуация такая. Есть 5 таблиц в БД - dept, ctrl, section, rank, users соответственно в них хранятся Департаменты, Управления, Отделы, Должности, Пользователи. У всех, кроме пользователей структура "id, name", пользователь же хранит id, id_dept, id_ctrl, id_section, id_rank name т.е. всю информацию, где он находится.

На странице мне необходимо выводить пользователей в соответствии с их вложенностью в департаменты, управления и отделы, например:

-Департамент развития #dept
--Управление внешнего развития #dept.ctrl
---Отдел автоматизации #dept.control.section
----Начальник отдела - Иванов Иван #dept.control.section.rank - name
----Ведущий специалист - Петров Федор #dept.control.section.rank - name
--Управление внутреннго развития #dept.ctrl
--Начальник управления - Петросян Вова #dept.rank - name (пользователь не имеет отдела и принадлежит только департаменту и управлению)
---Отдел строительства #dept.ctrl.section
----Монтажник Пупкин Вася #dept.ctrl.section.rank - name
----Прораб Соколов Артем #dept.ctrl.section.rank - name
-Департамент информационных технилогий #dept
-Директор департамента - Сидоров Петр #dept.rank - name (пользователь принадлежит только депаратаменту)
--Отдел мониторинга #dept.section (отдел не имеет управления)
---Начальник отдела - Фамилия Имя #dept.section.rank - name

как вы можете заметить, в указанных местах пользователь может не содержать управления и отдела (является директором департамента), либо не содержать только отдела (директор управления в департаменте, либо его помошник).

Голова в поисках рационального решения сломана. Есть еще светлые головы? :)

p.s. кросспост с http://php.ru/forum/viewtopic.php?t=14573
 

Фанат

oncle terrible
Команда форума
Хранить все в одной таблице, в виде дерева.
Про виды деревьев можно почитать разделе "статьи"
 

Dodger

Новичок
алгоритм с левелами не очень подходит под вывод моей структуры..
 

Фанат

oncle terrible
Команда форума
Ба! ну раз тебе померещилось, что алгоритм с левелами не подходит для твоей структуры, можешь выбрать какой-нибудь другой.

-~{}~ 16.10.08 09:58:

только юзеров, разумеется, хранить отдельно от этой таблицы.

-~{}~ 16.10.08 10:17:

Вообще, такие заявления, как "мне не очень подходит" очень мало приближают тебя к решению задачи.
Некоторые люди, приходя на форум, думают, что раз уж они соизволили задать свой вопрос, то теперь можно откинуться в кресле, расслабиться, и забыть о своей проблеме. Ведь на форуме живут добрые гномы, которые под руководством доброй феи занимаются решением проблем под ключ. А самому автору уже ничего делать не надо.

Так вот. В некотором роде, это - заблуждение. Оказывается, у гномов есть своя работа и свои задачи. В которые надо вникать, приходя с утра на работу (а ужас, как не хочется, а хочется потрепаться на форуме). И почему они должны вникать в твою задачу, и разрабатывать её не на уровне идеи, как её решать, а вплоть до конкретной реализации - загадка.
чтобы эту загадку разрешить, надо немножечко приложить собственных силенок. К примеру, если какой-то способ тебе показался неподходящим, то надо не двигать так пальчиком "мне это не подходит, принесите другое", а привести здесь результат разработки - как именно пробовал и что при практическом применении (а не теоретическом ковырянии в носу) вызвало проблемы. Может быть, эти проблемы - кажущиеся, и решаются элементарно?
 
Сверху