Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1144603517
DillerXX
2006-04-09 21:25
2006.04.30
Как называется книга?


15-1144675623
oldman
2006-04-10 17:27
2006.04.30
оффтоп, но смешно...


15-1143407609
Наиль
2006-03-27 01:13
2006.04.30
Головоломки в редакторе кода


3-1141732338
ANB
2006-03-07 14:52
2006.04.30
Выбрать строку с максимальной датой


2-1144565312
Galiaf
2006-04-09 10:48
2006.04.30
Ещё раз про настройки экрана...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский