|
Структура каталогов из списка путей файлов
|
|||
---|---|---|---|
#18+
Добрый день, возможно тема всплывала и я просто не умею пользоваться поиском и все такое прочее.., но всеже. есть таблица, в которой хранятся пути и параметры файлов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Есть другая таблица для дерева в которой почти то же самое, только есть поле ParentID и хранится только имя файла без пути: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Возможно ли сформировать из данных первой таблицы дерево во второй таблице только SQL запросом? Причем необходимо учитывать, что каталоги в таблице [tblFiles] уже могут быть записаны, а вот файлы с одинаковыми именами могут повторяться (разные версии файлов). Мои мысли: 1. Сортируем [tblRawFiles] по [strFileName], так сначала будут каталоги, а уж потом файлы этого каталога. 2. Каталог определяется элементарно: Код: sql 1.
3. "Между каталогами" в списке могут быть только файлы, "принадлежащие" последнему каталогу. Если мыслить в терминах нормального программирования: 1. Проходим по отсортированной таблице сверху вниз; 2a. Если найден каталог - проверим есть ли он в [tblFiles], если есть - запомним его [_ID], если нет - добавить; 2b. Если найден файл - добавить его в [tblFiles] с запомненным ParentID Отдельный вопрос как проверить наличие папки в [tblFiles], похоже это нужно делать рекурсивно. Возможно ли реализовать такой функционал на SQL?, если да - жду Ваших мыслей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2013, 17:55 |
|
|
start [/forum/topic.php?fid=54&msg=38421072&tid=2008863]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 392ms |
0 / 0 |