Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Иерархические запросы


Страницы:   1 2 3 4

Елена ©   (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. Там отдельные структуры для всех типов данных. И есть отдельная структура для разметки.
То есть, хранить абзацы в одной таблице БД, таблицы - в другой и тд. И собирать когда надо.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо