Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Сортировка чисел в виде строк с иерархической структурой   Найти похожие ветки 

 
Виктор Исмагилов   (2004-04-10 15:00) [0]

Не подскажет ли кто нибудь решение такой проблемы:
имеется поле БД, в котором представлены некоторые реестровые номера объектов в виде "Объект/подобъект/...", т.е.
1
2
2/1
2/1/1
2/2
3
3/1
и т. д. Номера могут добавляться и удаляться в случайном порядке. При таком формате отображения поле естественно стриноговое. Заказчик требует, что бы данные в сетке отображались именно в таком иерархически возрастающем порядке, но поскольку это строки, то сортируются они в виде
1
10
10/1
2
20 и т.д. Не подскажет ли кто нибудь алгоритм, как можно их отсортировать в виде иерархического дерева. Заранее благодарен.


 
Виктор Исмагилов   (2004-04-10 15:00) [0]

Не подскажет ли кто нибудь решение такой проблемы:
имеется поле БД, в котором представлены некоторые реестровые номера объектов в виде "Объект/подобъект/...", т.е.
1
2
2/1
2/1/1
2/2
3
3/1
и т. д. Номера могут добавляться и удаляться в случайном порядке. При таком формате отображения поле естественно стриноговое. Заказчик требует, что бы данные в сетке отображались именно в таком иерархически возрастающем порядке, но поскольку это строки, то сортируются они в виде
1
10
10/1
2
20 и т.д. Не подскажет ли кто нибудь алгоритм, как можно их отсортировать в виде иерархического дерева. Заранее благодарен.


 
Desdechado ©   (2004-04-10 16:03) [1]

1. написать UDF, которая корректно разбирает содержимое поля и выдает признак для сортировки
2. изменить структуру БД для хранения иерархии


 
Desdechado ©   (2004-04-10 16:03) [1]

1. написать UDF, которая корректно разбирает содержимое поля и выдает признак для сортировки
2. изменить структуру БД для хранения иерархии


 
Digitman ©   (2004-04-10 16:24) [2]


> Виктор Исмагилов  


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


 
Digitman ©   (2004-04-10 16:24) [2]


> Виктор Исмагилов  


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


 
Digitman ©   (2004-04-10 16:29) [3]

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


 
Digitman ©   (2004-04-10 16:29) [3]

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
9-1068552959
Thor
2003-11-11 15:15
2004.05.09
Улучшенный Power Draw


8-1076729858
Bonial
2004-02-14 06:37
2004.05.09
Как можно узнать регион экрана, который изменился?


1-1082569450
Andrew (Znak)
2004-04-21 21:44
2004.05.09
Интерфес программы наподобие Delphi


14-1082080865
Думкин
2004-04-16 06:01
2004.05.09
С днем рождения! 16 апреля.


1-1082554995
Shag
2004-04-21 17:43
2004.05.09
выделение в Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский