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

Вниз

Иерархические запросы   Найти похожие ветки 

 
Sergey13 ©   (2006-03-09 13:26) [40]

2[38] Елена   (09.03.06 13:16)
Лена, таким способом с иерархией не работают. Это было бы слишком просто.
Рекомендую почитать про деревья в БД. Можно найти на http://ibase.ru/develop.htm
То, что это на сайте про ИнтерБейс - не важно. Суть важна.


 
Елена   (2006-03-09 13:28) [41]

Спасибо всем ) пересмотрю структуру хранения данных


 
paul_k ©   (2006-03-09 14:07) [42]

Струкртуру хранеия бесконечной влодженности кроме дерева что ещё?
Для начала, все же изучите

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


Если обход сверху вниз то у листа желательно явно задать признак окончания обхода, хотя можнои признаком считать отсутствие дочерных веток.

строим курсор по корневым веткам (parent_id is null)
и начинаем обрабатывать каждую запись собирать потомков и так далее. Пока не наступим на грабли ограничение количества вложенных вызовов.

Тоже самое можно проделать и на клиенте
Далее создаем временную табличку и собираем в нее данные.


 
msguns ©   (2006-03-09 14:13) [43]

>paul_k ©   (09.03.06 14:07) [42]

Зачем упорно советовать итти в могилу ?
Речь идет не о структурных данных, для хранения которых предназначены БД, а о документах произвольной формы.
Что будешь делать с договором, в котором есть таблицы или графики ? Как "объяснить" серверу БД, что в пункте 5.1.6 слева листа там, гле первый абзац, надо нарисовать картинку ? Или как "засунуть" в документ подпись или печать ? Про цвет, размер, шрифт, разметку, колонтитулы и т.д. вообще молчу.
Кто предпочтет такую БД обыкновенному ворду, влегкую справляющемуся со всем перечисленным, покажи мне такого идиота  ?


 
paul_k ©   (2006-03-09 14:24) [44]

> [43] msguns ©   (09.03.06 14:13)

хмм... показать? да легко.. хотя мою морду ты на фотках видел.:)
все от задачи зависит и от того что есть "документ свободного формата" в рамках оной задачи.
В некоторых задачах крайне удобно хранить в дереве куски документа. (в частности пункты, как у автора) В других задачах это верный путь в яму.


 
Елена   (2006-03-09 14:49) [45]

для каждого пункта будут поля - цвет , шрифт, отступы, а также признак - это текст или таблица.

если таблица - то использование  доп компонента advstringgridd7
человек работает с таблицей, данные  из нее буду  хранить в тексте, определнного формата. Затем при печати  этого документа выводит таблицу, если нада


 
paul_k ©   (2006-03-09 14:53) [46]

> [45] Елена   (09.03.06 14:49)

Лена, тогда проще образ документа в блоб поле держать. В MsWord вызвать в нем поправить/посмотреть и обратно в базу.


 
Romkin ©   (2006-03-09 14:56) [47]

Елена   (09.03.06 14:49) [45] Лучше сделать как у MS. Там отдельные структуры для всех типов данных. И есть отдельная структура для разметки.
То есть, хранить абзацы в одной таблице БД, таблицы - в другой и тд. И собирать когда надо.


 
Елена   (2006-03-09 15:00) [48]

Отдельные  структуры? Это было моим первым решением, но как быть с произвольным кол-ом пунктов?


 
Sergey13 ©   (2006-03-09 15:01) [49]

2[45] Елена   (09.03.06 14:49)
А зачем все это? Ты пока так и не сказала - зачем хранить документ по пунктам, если каждый пункт относится только к одному документу?


 
Romkin ©   (2006-03-09 15:02) [50]

А если делать по-серьезному, есть стандарт, OpenDocument. Его рассмотреть и следовать. http://ru.wikipedia.org/wiki/OpenDocument


 
Елена   (2006-03-09 15:02) [51]

хорошо, таблицу пока можно не трогать.  Как организовать хранение  абзацев. ..


 
msguns ©   (2006-03-09 16:49) [52]

>paul_k ©   (09.03.06 14:24) [44]
>В некоторых задачах крайне удобно хранить в дереве куски документа. (в частности пункты, как у автора) В других задачах это верный путь в яму.

Давай все же как-то определяться, ЧТО мы хотим хранить: содержимое документа или сам документ в своем печатном виде. Если первое, то я неверно понял сабж, приношу уважаемому Собранию свои изменения и отправляюсь в ближайшую рюмочную, где и залью свое горе ;)
А если второе, то все равно придется иметь дело с документом (Word, html, OpenDoc и прочее), только "засунутым" в блоб. В этом случае надо говорить не о проблеме хранения структуры документа, а о системе хранения документов. Что совсем не обно и то же


 
msguns ©   (2006-03-09 16:58) [53]

Кстати, для хранения кусков одного целого с требованием сохранения заданной последовательности, но без привязки к некоторому базовому значению (главы документа) можно использовать принцип цепочки. i-й блок (глава) ссылается на i+1. i+1 на i+2 и т.д. Для получения дерева нужено еще добавить цепочку папа-дочка. Правда, извлечение исключительно "вручную" (т.е.позаписьно), зато легко переваривает любые перемещения блоков относительно друг друга. Нумерация определяется просто и легко - по принципу "котовым считан - таким и нумеруется"

Что-то вроде кластерной цепочки файловой системы, только "двухмерная" ;))

Написал и вспомнил старый добрый MUMPS, вся файловая система котрая была построена "от дерева".


 
Sergey13 ©   (2006-03-09 17:05) [54]

2[53] msguns ©   (09.03.06 16:58)
Это описание велосипеда с квадратными колесами? 8-)


 
Елена   (2006-03-10 08:25) [55]

Сделала ) всем спасибо за критику , предложения и полезные ссылочки


 
ANB ©   (2006-03-10 11:28) [56]


> Елена   (10.03.06 08:25) [55]

А MS SQL критично ? Просто оракл позоляет работать с деревьями, а 9 - еще и в легкую.

Хотя я бы таки целиком документ хранил.


 
paul_k ©   (2006-03-10 11:32) [57]

> [52] msguns ©   (09.03.06 16:49)

Вот и я про то же. Насколько я понял автора, необходимо хранить содержимое. Видимо понял неверно.


 
Sergey13 ©   (2006-03-10 11:32) [58]

2[56] ANB ©   (10.03.06 11:28)
Позволяет даже Парадокс. Оракл облегчает работу. 8-)


 
Елена   (2006-03-10 11:38) [59]

ага, mssql критично  - Оракел не тянет по ряду причин, не от меня зависящих


 
Sergey13 ©   (2006-03-10 11:42) [60]

2[59] Елена   (10.03.06 11:38)
>Оракел не тянет по ряду причин
Никто тебя за язык не тянул. Щас начнется. 8-)


 
paul_k ©   (2006-03-10 11:43) [61]

дусаю начнется с
> Оракел


 
Елена   (2006-03-10 11:45) [62]

))  это уже оффтоп


 
msguns ©   (2006-03-10 11:51) [63]

>Sergey13 ©   (10.03.06 11:42) [60]
>Никто тебя за язык не тянул. Щас начнется. 8-)

Ага, Серега будет уговаривать для посадки дерева пригласить шагающий экскаватор. Уракакл самый-самый именно для хранения документов ;))


 
Sergey13 ©   (2006-03-10 11:53) [64]

2[63] msguns ©   (10.03.06 11:51)
>Ага, Серега будет уговаривать для посадки дерева пригласить шагающий экскаватор.
Нет. Не буду. Мне пофиг. 8-)

>Уракакл самый-самый именно для хранения документов ;))
А че? Дешево и сердито. Ты не согласен? 8-)


 
msguns ©   (2006-03-10 12:06) [65]

>Sergey13 ©   (10.03.06 11:53) [64]
>А че? Дешево и сердито. Ты не согласен? 8-)

Серега, я с тобой завсегда и во всем согласен !
А если и спорю, то исключительно для солидности..
;))


 
Sergey13 ©   (2006-03-10 12:13) [66]

2[65] msguns ©   (10.03.06 12:06)
8-)))))))))))



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

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

Наверх




Память: 0.59 MB
Время: 0.027 c
2-1144907499
andrey2005
2006-04-13 09:51
2006.04.30
Как узнать путь к папке приложения?


15-1144384396
Хозяин
2006-04-07 08:33
2006.04.30
11-12 апреля по 1 каналу


2-1144933698
Сергей И
2006-04-13 17:08
2006.04.30
События формы


15-1144252234
Piter
2006-04-05 19:50
2006.04.30
Подскажите способ интерполяции и экстраполяции свойств газов


15-1144630836
mio
2006-04-10 05:00
2006.04.30
загрузочный диск