|
|
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Подскажите как собрать дерево хронящаеся в следующей структуре: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 08:19 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Anatoly_Zaitsev, По-идее, в первой таблице иерархия уже поддерживается... Вторая таблица, как я понимаю, описывает особенности других связей? Или поле parent_id в данном примере не используется? Поподробнее можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 08:24 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Действительно, если связи между объектами устанавливаются в Таблице 2, тогда зачем parent_id? У Вас структура иерархическая или сетевая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 10:31 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
У меня иерархиче структура, связь между обьектами устанавливаю через связку id - parent_id, вторую таблицу я ввел для установки связки между обьектами в таблице 1 так как не все объекты первой таблицы учавствую в образование дерева. Объясню подробнее: база предназначена для агенства по сдачи квартир в наем, в таблице 1 лежат объекты Код: plaintext 1. 2. 3. 4. 5. 6. но также в этой таблице храняться объекты не входящие в дерево например статьи по району (какой он замечательный :) ) вот тут становиться нужна таблица 2 которая хранит связки Код: plaintext 1. 2. а проблема на самом деле очень банальна: нужно вытянуть все дерево от корня через связки id - parent_id при этом надо учитывать что корей может быть несколько а само дерево представляет собой древо графов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 14:05 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Anatoly_Zaitsevа проблема на самом деле очень банальна: нужно вытянуть все дерево от корня через связки id - parent_id при этом надо учитывать что корей может быть несколько а само дерево представляет собой древо графовРешение зависит от используемой СУБД. Это Вам в профильную ветку. Как общий вариант решения - рекурсивный CTE (common table expression). Многие СУБД поддерживают такую возможность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 14:45 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Извините, ошибся форумом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 15:49 |
|
||
|
Обход бинарного дерева
|
|||
|---|---|---|---|
|
#18+
Anatoly_Zaitsev пишет: > Таблица *1* Таблица *2* > таблица объектов связка объектов > > Object_id id_o1 > parent_id id_o2 1) это не бинарное дерево, а N-арное. 2) на чистом SQL обход дерева не реализуется. Нужно что-то типа CONNECT BY или циклы. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2009, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35768460&tid=1543475]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 486ms |

| 0 / 0 |
