Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создение деревьев и работа с ними. Дайте ссылки. [D7, FireBird]


Страницы:   1 2

worldmen ©   (2006-10-23 17:11:00) 

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


ANB   (2006-10-25 18:02:00) [1]


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

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


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

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


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


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


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


Bless   (2006-10-25 17:55:00) [3]


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


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


ANB   (2006-10-25 14:51:00) [4]


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

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


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

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


Bless   (2006-10-25 13:53:00) [6]


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


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


unknown   (2006-10-25 10:49:00) [7]


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

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


ANB   (2006-10-25 10:33:00) [8]

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


ANB   (2006-10-25 10:30:00) [9]


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

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


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


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


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


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


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


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

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


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


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


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


Bless   (2006-10-24 19:34:00) [13]


> 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


ANB   (2006-10-24 16:49:00) [14]


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

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


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


> ANB

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


ANB   (2006-10-24 15:42:00) [16]


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

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


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

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


zdm   (2006-10-24 14:30:00) [18]

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


zdm   (2006-10-24 14:28:00) [19]

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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо