Форум: "Базы";
Текущий архив: 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