Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизИерархические запросы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.011 c