powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Обход бинарного дерева
8 сообщений из 8, страница 1 из 1
Обход бинарного дерева
    #35768460
Anatoly_Zaitsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как собрать дерево хронящаеся в следующей структуре:


Код: plaintext
1.
2.
3.
4.
  Таблица  1              Таблица  2 
таблица объектов      связка объектов

Object_id                  id_o1
parent_id                  id_o2
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35768462
TsRV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly_Zaitsev,

По-идее, в первой таблице иерархия уже поддерживается... Вторая таблица, как я понимаю, описывает особенности других связей? Или поле parent_id в данном примере не используется?

Поподробнее можно?
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35768686
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, если связи между объектами устанавливаются в Таблице 2, тогда зачем parent_id?
У Вас структура иерархическая или сетевая?
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35769358
Anatoly_Zaitsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня иерархиче структура, связь между обьектами устанавливаю через связку id - parent_id, вторую таблицу я ввел для установки связки между обьектами в таблице 1 так как не все объекты первой таблицы учавствую в образование дерева. Объясню подробнее: база предназначена для агенства по сдачи квартир в наем, в таблице 1 лежат объекты

Код: plaintext
1.
2.
3.
4.
5.
6.
  
город
  район
    улица
      дом
        квартира

но также в этой таблице храняться объекты не входящие в дерево например статьи по району (какой он замечательный :) ) вот тут становиться нужна таблица 2 которая хранит связки

Код: plaintext
1.
2.
район - статья1
район - статья2
район - статья3

а проблема на самом деле очень банальна: нужно вытянуть все дерево от корня через связки id - parent_id при этом надо учитывать что корей может быть несколько а само дерево представляет собой древо графов
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35769485
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly_Zaitsevа проблема на самом деле очень банальна: нужно вытянуть все дерево от корня через связки id - parent_id при этом надо учитывать что корей может быть несколько а само дерево представляет собой древо графовРешение зависит от используемой СУБД. Это Вам в профильную ветку. Как общий вариант решения - рекурсивный CTE (common table expression). Многие СУБД поддерживают такую возможность.
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35769738
Anatoly_Zaitsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, ошибся форумом :)
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35773879
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Обход бинарного дерева
    #35774226
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНужно что-то типа CONNECT BY или циклы.Или элементарный CTE-запрос.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Обход бинарного дерева
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]