@WestDragon

Как создать дерево в perl из SQL запроса?

Добрый день. Возможно заголовок написан криво ) (Явное влияние утра понедельника после ночи работы).

Ситуация следующая. Практикуюсь в работе с OTRS и есть идея связать все заявки с сервером телефонии. Было решено написать модуль телефонной книги, но вот запнулся на, вроде бы, маленькой мелочи: Формирования списка классификатора в виде дерева. Понимаю что вопрос скорее все нужно будет решать через рекурсию. С perl почти не знаком, так что не пинайте сильно.
Есть следующая структура базы:
<TableCreate Name="phonebook_menu">
            <Column Name="id" Required="true" PrimaryKey="true" AutoIncrement="true" Type="BIGINT"/>
            <Column Name="id_parent" Required="false" Type="BIGINT"/>
            <Column Name="name" Required="true" Size="250" Type="VARCHAR"/>
            <Column Name="created" Required="true" Type="DATE"/>
            <Column Name="created_by" Required="true" Type="INTEGER"/>
            <Column Name="changed" Required="true" Type="DATE"/>
            <Column Name="changed_by" Required="true" Type="INTEGER"/>
            <Column Name="valid_id" Required="true" Type="SMALLINT"/>
            <Unique Name="phonebook_menu_id">
                <UniqueColumn Name="id"/>
            </Unique>
            <Index Name="phonebook_menu_id">
                <IndexColumn Name="id"/>
            </Index>
            <ForeignKey ForeignTable="valid">
                <Reference Local="valid_id" Foreign="id"/>
            </ForeignKey>
            <ForeignKey ForeignTable="users">
                <Reference Local="created_by" Foreign="id"/>
                <Reference Local="changed_by" Foreign="id"/>
            </ForeignKey>
        </TableCreate>

  • id - всем понятно что это уникальный номер классификатора;
  • id_parent - в случае если это классификатор (категория) верхнего уровня то он будет = 0, либо если это вложенный классификатор то id соответсвующий другому классификатору, name - имя классификатора;
  • valid_id - скрыт классификатор или нет (0/1);
  • прочее никак не влияет на задачу;

Требуется написать sql запрос для mysql или postgresql и код который будет обрабатывать результаты запроса и сформирует hashes of hashes.
  • Вопрос задан
  • 2557 просмотров
Пригласить эксперта
Ответы на вопрос 2
Falseclock
@Falseclock
решаю нестандартные задачи
Вопрос не корректный. Точнее не понятно что именно преследуете.
На Postgres можно вытащить в виде дерева через XML
www.postgresql.org/docs/9.4/static/functions-xml.h...

а дальше как угодно парсить.
Ответ написан
Комментировать
@WestDragon Автор вопроса
Преследуется следующее:
Нужно получить hashes of hashes для того что бы потом обработать его и на странице вывести список категорий в виде списка ul>li. А потом использовать плагин www.jstree.com/docs/json .
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы