Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.014 c
1-1163854909
PAVEL315
2006-11-18 16:01
2007.01.14
ПОМОГИТЕ!!!


15-1167024646
Gulnaz
2006-12-25 08:30
2007.01.14
Где можно найти учет пользователя Interbase?


15-1166780011
IMHO
2006-12-22 12:33
2007.01.14
Передать ссылку с Authorization


3-1161809652
softsapiens
2006-10-26 00:54
2007.01.14
Обновление базы данных


2-1166930197
allrussia
2006-12-24 06:16
2007.01.14
Помогите разобраться с TThread





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский