Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Создение деревьев и работа с ними. Дайте ссылки.   Найти похожие ветки 

 
worldmen ©   (2006-10-23 17:11) [0]

Искал по нету и по форуму - ничего не нашел.
Дайте какие-нибудь ссылки почитать по сосданию и работе с деревьями .


 
unknown ©   (2006-10-23 17:13) [1]

http://www.ibase.ru/develop.htm
см. Древовидные и иерархические структуры, хранение объектов


 
zdm ©   (2006-10-23 17:37) [2]

дерево из БД строиться?
тогда вопрос в яндексе,,.или где хочешь. DBTreeView своими руками. Куча ссылок на похожие статьи


 
zdm ©   (2006-10-23 17:38) [3]

Стратегия одна id,pid,name а дальше интересней :)


 
atruhin ©   (2006-10-23 17:44) [4]

> [3] zdm ©   (23.10.06 17:38)

Глубоко ошибаешься. Стратегий хранения деревьев много. Например хранение вместо ParentID, полного пути к объекту.


 
Zacho ©   (2006-10-23 17:45) [5]

zdm ©   (23.10.06 17:38) [3]
Стратегия одна id,pid,name


Ты ошибаешься. Есть разные способы организвции деревьев в РСУБД. См. [1]


 
Ученик чародея ©   (2006-10-23 20:19) [6]

Вложенные множества. Но для 5% случаев не подходят.

http://sdm.viptop.ru/articles/sqltrees.html


 
RebroFF   (2006-10-24 13:01) [7]

Главное не соблазняйся сторонними компонентами. Несмотря на мой небольшой стаж общения с Delphi уже имел неприятный опыт. Опять же истина, пережёванная чужим сознанием перестаёт быть истиной:)


 
zdm ©   (2006-10-24 14:28) [8]

я в общем сказал!!!!
ни с нуля-же объяснять.Как в самой структуре БД так и построения кода вариантов немерено.


 
zdm ©   (2006-10-24 14:30) [9]

мне нравится доп.поле TREE -это типа 1. 1.1. 2. 2.1 2.1.1 и вставая на веточку можно сделать запрос на селект где tree like 1. и т.д.


 
zdm ©   (2006-10-24 14:31) [10]

RebroFF -я думаю точно понял(прив)!!! я кстати все компоненты достал для BDS2006


 
ANB ©   (2006-10-24 15:42) [11]


> мне нравится доп.поле TREE -это типа 1. 1.1. 2. 2.1 2.1.
> 1 и вставая на веточку можно сделать запрос на селект где
> tree like 1. и т.д.

И если тебе нужно перенести большую ветку, то надо будет перебивать это поле у всех листьев. Еще клево выходит, кода место в этом поле заканчивается.
ИМХО : парентовые деревья самые удобные. Остальное - от лукавого.


 
zdm ©   (2006-10-24 16:12) [12]


> ANB

Я опять-же для примера(всегда приходится выбирать, либо красиво и удобно ....либо....)


 
ANB ©   (2006-10-24 16:49) [13]


> либо красиво

Парентовые и красивее будут. И работать с ними удобнее.


 
Bless ©   (2006-10-24 19:34) [14]


> ANB ©   (24.10.06 16:49) [13]
>
> Парентовые и красивее будут. И работать с ними удобнее.


Гм, а можно на примере?
Как с парентовыми деревьями (это ж) красиво решить следующую задачу:
Пусть есть таблица Obj ("объекты") (объект может иметь подобъекты и т.п.) с полями
id - код объект
pid - код родительского объекта
oname -наименование объекта.


и есть таблица Smet("сметы")

id - код сметы
oid - код объекта, на строительство которого эта смета выдана
sname - наименоваине сметы
st - стоимость сметы

Нужно получить результат, состоящий из двух полей:
- наименоваине объекта
- суммарная стоимость всех смет, относящихся к этому объекту.
т.е. для случая

Obj
--------
id  pid    oname
1   NULL объект1
2  1      объект1_2
3  1      объект1_3
4  2      объект2_4

Smet
------
id oid sname   st
----------------
1  2   Смета2  20
2  4   Смета3  30


должно дать результат:

------------------
объект1      50
объект1_2   50  
объект2_4   30


 
Ученик чародея ©   (2006-10-24 21:36) [15]


> Bless ©   (24.10.06 19:34) [14]


Я же давал ссылку вложенные множества, но намумукаешься...


 
Sergey Masloff   (2006-10-24 22:46) [16]

Bless ©   (24.10.06 19:34) [14]
А в чем проблема? Строится дерево и на него коррелированный подзапрос накладывается. Речь же об оракле? Дерево через connect by в подзапросе тоже connect by от текущего узла.


 
Bless ©   (2006-10-25 09:13) [17]


> Ученик чародея ©   (24.10.06 21:36) [15]
>
> Я же давал ссылку вложенные множества, но намумукаешься.
> ..


Да я в курсе про множества. И задача решается, одним запросом(правда не через множества). Просто хотелось увидеть решение с parentID, красивое к тому же.


> Sergey Masloff   (24.10.06 22:46) [16]
> Речь же об оракле?


А [13] относилось только к Ораклу? У автора топика - firebird, а в [13] Оракл тоже не упоминается.
Но если так, то вопрос снимается, т.к. практической пользы я от ответа не получу, у меня MS SQL :)


 
ANB ©   (2006-10-25 10:30) [18]


> т.к. практической пользы я от ответа не получу, у меня MS
> SQL :)

поставь оракл и наслаждайся :)
Кстати, кто тут хвастал что такую же фичу и к мс скл собирались прикрутить . . .


 
ANB ©   (2006-10-25 10:33) [19]

А про ФБ . . .
ИМХО : не стоит серьезные системы на ФБ пихать. Если просто нужно плоское хранилище данных, то можно и его. Эмбедед вообще прикольная штука - ставить не надо. Ещеб его научили запускаться с сетевых дисков.
Если же заранее планируешь писать более-менее сурьезную системку (ну хотя бы минибухгалтерию) - тут уж лучше оракле XE взять.


 
unknown ©   (2006-10-25 10:49) [20]


> ANB ©   (25.10.06 10:33) [19]
> А про ФБ

Вот только холиваров еще не хватало...


 
Bless ©   (2006-10-25 13:53) [21]


> Если же заранее планируешь писать более-менее сурьезную
> системку (ну хотя бы минибухгалтерию) - тут уж лучше оракле
> XE взять.


На Oracle свет клином не сошелся. Есть и Sybase ASA (все хочу потрогать), и MS SQL, и DB2 (бесплатная версия менее урезана чем Oracle XE), и PostgreSQL  и другие умные слова, которые делают процитированное утверждение спорным.


 
Сало   (2006-10-25 14:46) [22]

В FB 3.0 добавят with, тогда для построения дерева не нужно будет малевать процедуру.


 
ANB ©   (2006-10-25 14:51) [23]


> На Oracle свет клином не сошелся. Есть и Sybase ASA (все
> хочу потрогать), и MS SQL, и DB2

Конечно не сошелся. Я тоже хочу DB2 потрогать. SyBase меня смущает - видел как то. А MS SQL еще до оракла расти и расти.
Еще адабас бы качнуть - да здоровенный он небось.


 
Bless ©   (2006-10-25 17:55) [24]


> SyBase меня смущает - видел как то.


а что смущает?


 
Bless ©   (2006-10-25 18:00) [25]


>  А MS SQL еще до оракла расти и расти.


Но " более-менее сурьезную системку" с его помощью сваять таки можно :)


 
ANB ©   (2006-10-25 18:02) [26]


> а что смущает?

Тормозило все страшно


> Но " более-менее сурьезную системку" с его помощью сваять
> таки можно :)

Она получается более расколбасная и непонятная. Те же деревья там пока по человечески не поиспользуешь. T-SQL какой то птичий.



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

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.065 c
15-1165935162
Гарри Поттер
2006-12-12 17:52
2007.01.14
Монтаж локальной сети. Склько может стоить?


2-1166558170
addi
2006-12-19 22:56
2007.01.14
Мультимедийный таймер


2-1166637366
Slimer
2006-12-20 20:56
2007.01.14
Проблемма с индексами в таблице


2-1166604806
регинка
2006-12-20 11:53
2007.01.14
помогите!!!!!!!!!


2-1166798943
КВАНТ
2006-12-22 17:49
2007.01.14
Про шрифты Windows XP