![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Иерархические запросы
Елена © (2006-03-09 09:25:00)день добрый. Столкнулась со следующей проблемой - храние документов произвольной структуры в бд.
Значит так - есть документ, есть абзацы у него, у этих абазцев могут быть пункты и подпункты произвольной вложенности.
структура таблички в БД
1)id
2)idDok (номер договора=1 к примеру)
3)name (текст абзаца)
4)NVP (номер вышестоящего пункта)
как распечатать документ с нумерацией? в БД следующее
1 1 ПРЕДМЕТ 0
2 1 Заказчик должен.. 1
3 1 Все работы .. 1
4 1 ТЕХ УСЛОВИЯ 0
5 1 Исполнитель вправе 4
6 1 работать 5
7 1 не работать 5
8 1 Заказчик может 4
9 1 требовать 8
Вот.. Подскажите, как распечатать эту табличку с нумерацией типа
1.ПРЕДМЕТ
1.1.Заказчик должен..
1.2.Все работы ..
2.ТЕХ УСЛОВИЯ
2.1. Исполнитель вправе
2.1.1.работать
2.1.2.не работать
2.2.Заказчик может
2.2.1. требовать
А может структуру надо как-нибудь изменить?
Буду благодарна за любые советы
Sergey13 (2006-03-10 12:13:00) [1]2[65] msguns © (10.03.06 12:06)
8-)))))))))))
msguns (2006-03-10 12:06:00) [2]>Sergey13 © (10.03.06 11:53) [64]
>А че? Дешево и сердито. Ты не согласен? 8-)
Серега, я с тобой завсегда и во всем согласен !
А если и спорю, то исключительно для солидности..
;))
Sergey13 (2006-03-10 11:53:00) [3]2[63] msguns © (10.03.06 11:51)
>Ага, Серега будет уговаривать для посадки дерева пригласить шагающий экскаватор.
Нет. Не буду. Мне пофиг. 8-)
>Уракакл самый-самый именно для хранения документов ;))
А че? Дешево и сердито. Ты не согласен? 8-)
msguns (2006-03-10 11:51:00) [4]>Sergey13 © (10.03.06 11:42) [60]
>Никто тебя за язык не тянул. Щас начнется. 8-)
Ага, Серега будет уговаривать для посадки дерева пригласить шагающий экскаватор. Уракакл самый-самый именно для хранения документов ;))
Елена (2006-03-10 11:45:00) [5])) это уже оффтоп
paul_k (2006-03-10 11:43:00) [6]дусаю начнется с
> Оракел
Sergey13 (2006-03-10 11:42:00) [7]2[59] Елена (10.03.06 11:38)
>Оракел не тянетпо ряду причин
Никто тебя за язык не тянул. Щас начнется. 8-)
Елена (2006-03-10 11:38:00) [8]ага, mssql критично - Оракел не тянет по ряду причин, не от меня зависящих
paul_k (2006-03-10 11:32:00) [9]> [52] msguns © (09.03.06 16:49)
Вот и я про то же. Насколько я понял автора, необходимо хранить содержимое. Видимо понял неверно.
Sergey13 (2006-03-10 11:32:00) [10]2[56] ANB © (10.03.06 11:28)
Позволяет даже Парадокс. Оракл облегчает работу. 8-)
ANB (2006-03-10 11:28:00) [11]
> Елена (10.03.06 08:25) [55]
А MS SQL критично ? Просто оракл позоляет работать с деревьями, а 9 - еще и в легкую.
Хотя я бы таки целиком документ хранил.
Елена (2006-03-10 08:25:00) [12]Сделала ) всем спасибо за критику , предложения и полезные ссылочки
Sergey13 (2006-03-09 17:05:00) [13]2[53] msguns © (09.03.06 16:58)
Это описание велосипеда с квадратными колесами? 8-)
msguns (2006-03-09 16:58:00) [14]Кстати, для хранения кусков одного целого с требованием сохранения заданной последовательности, но без привязки к некоторому базовому значению (главы документа) можно использовать принцип цепочки. i-й блок (глава) ссылается на i+1. i+1 на i+2 и т.д. Для получения дерева нужено еще добавить цепочку папа-дочка. Правда, извлечение исключительно "вручную" (т.е.позаписьно), зато легко переваривает любые перемещения блоков относительно друг друга. Нумерация определяется просто и легко - по принципу "котовым считан - таким и нумеруется"
Что-то вроде кластерной цепочки файловой системы, только "двухмерная" ;))
Написал и вспомнил старый добрый MUMPS, вся файловая система котрая была построена "от дерева".
msguns (2006-03-09 16:49:00) [15]>paul_k © (09.03.06 14:24) [44]
>В некоторых задачах крайне удобно хранить в дереве куски документа. (в частности пункты, как у автора) В других задачах это верный путь в яму.
Давай все же как-то определяться, ЧТО мы хотим хранить: содержимоедокумента или сам документ в своем печатномвиде. Если первое, то я неверно понял сабж, приношу уважаемому Собранию свои изменения и отправляюсь в ближайшую рюмочную, где и залью свое горе ;)
А если второе, то все равно придется иметь дело с документом(Word, html, OpenDoc и прочее), только "засунутым" в блоб. В этом случае надо говорить не о проблеме хранения структуры документа, а о системе хранения документов. Что совсем не обно и то же
Romkin (2006-03-09 15:02:00) [16]А если делать по-серьезному, есть стандарт, OpenDocument. Его рассмотреть и следовать. http://ru.wikipedia.org/wiki/OpenDocument
Елена (2006-03-09 15:02:00) [17]хорошо, таблицу пока можно не трогать. Как организовать хранение абзацев. ..
Sergey13 (2006-03-09 15:01:00) [18]2[45] Елена (09.03.06 14:49)
А зачем все это? Ты пока так и не сказала - зачем хранить документ по пунктам, если каждый пункт относится только к одному документу?
Елена (2006-03-09 15:00:00) [19]Отдельные структуры? Это было моим первым решением, но как быть с произвольным кол-ом пунктов?
Romkin (2006-03-09 14:56:00) [20]Елена (09.03.06 14:49) [45] Лучше сделать как у MS. Там отдельные структуры для всех типов данных. И есть отдельная структура для разметки.
То есть, хранить абзацы в одной таблице БД, таблицы - в другой и тд. И собирать когда надо.