|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
Пишу одну программу. Хочется чтобы все данные, в том числе формы GUI загружались с сервера БД. Сейчас это у меня просто - в таблицах в полях c типом text (PostgreSQL) хранится настоящий XML. Потом он грузится и разбирается парсером, сразу же создавая по его данным форму со всеми элементами управления. Потом подумал. Может лучше хранить данные в таблице, где каждое поле это узел. Структура полей примерно такая: 1. Уникальный числовой идентификатор (тип serial) 2. Идентификатор родительского элемента. 3. Имя узла 4. Данные (если есть) Реализовать не проблема. Но есть впрос. Чтобы открыть форму придется яделать десятки запросов к БД. У меня нет большого обыта. Не будет ли это неоптимальным с точчки зрения нагрузки на сервер. Или есть другие варианты хранения древовидной структуры данных в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2009, 21:47 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
Какова цель сего действа? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2009, 22:18 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
не хватает идентификатора набора данных (у тебя это - имя формы) ты хочешь построить форму: читаешь сразу все записи, относящиеся к твоей форме, а потом строишь что надо, не обращаясь к БД ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2009, 23:25 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
skmdeveloperРеализовать не проблема. Но есть впрос. Чтобы открыть форму придется делать десятки запросов к БД. У меня нет большого обыта. Не будет ли это неоптимальным с точчки зрения нагрузки на сервер. не будет особой нагрузки из=за десятка вопросов. тем более число форм конечно и если сделать кешь на клиенте в формате того же xml можно последущие запросы просто исключить пользуясь данными клиента. skmdeveloperИли есть другие варианты хранения древовидной структуры данных в БД? я тебе уже говорил, доверься моим наброскам, я с БД уже работаю не один десяток лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 00:37 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
Old Nick, +1 Для построения окон на лету есть HTML. Для хранения на сервере есть EXE - на сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 07:30 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
Petro123Old Nick, +1 Для построения окон на лету есть HTML. Для хранения на сервере есть EXE - на сервер. Программа будет с GUI, а не c web-интерфейсом. ПО многоплатформенное - подразумевается одновременная работа клиентов с разных ОС. Пишется на Qt. Как я понял, все будет нормально. Спасибо за идею о кэшировании. Это я упустил, поправлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2009, 09:17 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
skmdeveloperПотом подумал. Может лучше хранить данные в таблице, где каждое поле это узел. Структура полей примерно такая: 1. Уникальный числовой идентификатор (тип serial) 2. Идентификатор родительского элемента. 3. Имя узла 4. Данные (если есть) Зачем так делать? Концептуально, единицей первичного учёта у тебя является GUI форма, а не узел. Сам по себе узел не имеет никакого смысла для приложения, так зачем его вырывать из контекста, писать код, который будет собирать кусочки формы воедино, бороться с провалом производительности, поддерживать целостность данных? Зачем? Исторически БД поддерживали только простые типы данных - строки, числа, даты и т.п.. Чтобы реализовать модель сложного объекта в реляционной БД, приходилось выполнять его декомпозицию. Например, чтобы строить индексы по некоторым атрибутам объекта, иметь удобный доступ к их значениям как в выражениях, так и в построителях GUI, навешивать ограничения целостности. Сейчас многие системы понимают XML, так что в некоторых случаях объекты можно хранить единым XML документом. При необходимости СУБД может делать декомпозицию этого XML документа на несколько таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2009, 23:08 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
mcureenab, У меня cейчас так и работает. С XML в базе данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2009, 19:00 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
skmdeveloper, если хорошо работает, то пусть так и работает. Пока не вижу смысла менять. Для работы XML есть много API, в том числе и в SQL. Про PostgreSQL не знаю, в ORACLE для хранения XML можно прозрачно для SQL запросов создать структурированное хранилище сообразно новым потребностям приложений БД. Может быть у тебя ещё какие то тайные требования есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2009, 20:34 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
mcureenab, С XML проблем нет, все хорошо работает. В Qt есть классы для его разборки, ничего со стороны использовать не приходится. В общем решил пока ничего не трогать. Пусть работает как есть. Просто добавлю слой абстракции и кэширование, чтобы лишний раз не считывать одни и те же данные и будет ОК. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2009, 10:29 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
skmdeveloperВ Qt есть классы для его разборки, ничего со стороны использовать не приходится. Я бы удивился обратному. В продвижение XML столько бабла вбухали, что теперь он поддерживается везде и всюду. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2009, 17:54 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
mcureenabskmdeveloperВ Qt есть классы для его разборки, ничего со стороны использовать не приходится.Я бы удивился обратному. В продвижение XML столько бабла вбухали, что теперь он поддерживается везде и всюду. угу. его теперь используют везде где ни попадя. И попадают, извините за каламбур. Самое клевое "попадание" с ним в 1Сv8. Там через него делается обмен. Очень часто наблюдаю на 1С-ных форумах темы типа: - Ахтунг, при выгрузке сообщение не хватает памяти, подскажите что делать. тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2009, 18:51 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
Придумывать собственный формат глупо. Поэтому используют XML. Есть конкурент YAML. Лишен многих недостатков XML. Есть библиотеки, чтобы работать с ним. В Ruby вообще встроен. В Вики используется именно YAML-подобныя язык разметки. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2009, 19:54 |
|
Древовидная структура данных в БД.
|
|||
---|---|---|---|
#18+
skmdeveloperПридумывать собственный формат глупо. А всё равно придумывают. Тут вона в БД поле BER кодированное (стандарт OSI). Оно конечно места поменьше занимает чем XML, что в данном случае крайне существенно, но парсер хороший уже два года как сделать не могут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2009, 20:31 |
|
|
start [/forum/topic.php?fid=33&msg=36374808&tid=1548408]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 158ms |
0 / 0 |