Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.03.2013, 20:04
|
|||
---|---|---|---|
|
|||
Интервалы |
|||
#18+
Здравствуйте. Помогите пожалуйста со следующим вопросом. Есть иерархия интервалов в ввиде дерева [1...................................................100] [1...........10]-----[65..................80] [1..3][4..7]----------------[70......80] -[2.3]-[5.7]---------------[70..75] Необходимо основании дерева сформировать одномерный массив интервалов с учетом всех дочерних нод [1][2..3][4][5..7][8..10][11...64][65..69][70..75][76..80][81..100] То-есть получается как-бы вертикальный срез слоев торта по границам интервалов. Пока даже не знаю как подступиться к этому. Есть какие-нибудь типовые решения? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.03.2013, 20:23
|
|||
---|---|---|---|
|
|||
Интервалы |
|||
#18+
White Owl, База данных на SQLite, соотв используется его SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.03.2013, 00:16
|
|||
---|---|---|---|
Интервалы |
|||
#18+
Для этой задачи совершенно не важно какой диалект SQL использовать. Это задача на организацию данных а не хитрости СУБД. И вообще: 13467826 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.03.2013, 01:48
|
|||
---|---|---|---|
|
|||
Интервалы |
|||
#18+
White Owl, Да, вы в частности правы (особенности реализации все-же присутствуют). После 6 часов разбора решил сделать следующее: 1. Из всех пар дерева родительский интервал/дочерний интервал (left join по ключу) насобирать обрезков левых непересекающихся их частей 2. + Юнион Из всех пар (1) добавить последний правый обрезок интервала, где он есть 3. + Юнион Добавить выборку по всем терминальным (конечным) интервалам В результате получаем развертку всех интервалов со всеми нужными свойствами из реальных записей таблиц На тестовой БД вроде отработала как нужно. Завтра на свежую голову попробую на рабочей БД. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=54&tablet=1&tid=2008923]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 506ms |
0 / 0 |