|
Интервалы
|
|||
---|---|---|---|
#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:04 |
|
Интервалы
|
|||
---|---|---|---|
#18+
White Owl, База данных на SQLite, соотв используется его SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2013, 20:23 |
|
Интервалы
|
|||
---|---|---|---|
#18+
Для этой задачи совершенно не важно какой диалект SQL использовать. Это задача на организацию данных а не хитрости СУБД. И вообще: 13467826 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2013, 00:16 |
|
Интервалы
|
|||
---|---|---|---|
#18+
White Owl, Да, вы в частности правы (особенности реализации все-же присутствуют). После 6 часов разбора решил сделать следующее: 1. Из всех пар дерева родительский интервал/дочерний интервал (left join по ключу) насобирать обрезков левых непересекающихся их частей 2. + Юнион Из всех пар (1) добавить последний правый обрезок интервала, где он есть 3. + Юнион Добавить выборку по всем терминальным (конечным) интервалам В результате получаем развертку всех интервалов со всеми нужными свойствами из реальных записей таблиц На тестовой БД вроде отработала как нужно. Завтра на свежую голову попробую на рабочей БД. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2013, 01:48 |
|
|
start [/forum/topic.php?fid=54&gotonew=1&tid=2008923]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 144ms |
0 / 0 |