powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Древовидная структура данных в БД.
15 сообщений из 15, страница 1 из 1
Древовидная структура данных в БД.
    #36360031
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу одну программу. Хочется чтобы все данные, в том числе формы GUI загружались с сервера БД. Сейчас это у меня просто - в таблицах в полях c типом text (PostgreSQL) хранится настоящий XML. Потом он грузится и разбирается парсером, сразу же создавая по его данным форму со всеми элементами управления.
Потом подумал. Может лучше хранить данные в таблице, где каждое поле это узел. Структура полей примерно такая:
1. Уникальный числовой идентификатор (тип serial)
2. Идентификатор родительского элемента.
3. Имя узла
4. Данные (если есть)

Реализовать не проблема. Но есть впрос. Чтобы открыть форму придется яделать десятки запросов к БД. У меня нет большого обыта. Не будет ли это неоптимальным с точчки зрения нагрузки на сервер. Или есть другие варианты хранения древовидной структуры данных в БД?
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36360074
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какова цель сего действа?
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36360141
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не хватает идентификатора набора данных (у тебя это - имя формы)
ты хочешь построить форму:
читаешь сразу все записи, относящиеся к твоей форме, а потом строишь что надо, не обращаясь к БД
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36360192
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skmdeveloperРеализовать не проблема. Но есть впрос. Чтобы открыть форму придется делать десятки запросов к БД. У меня нет большого обыта. Не будет ли это неоптимальным с точчки зрения нагрузки на сервер.
не будет особой нагрузки из=за десятка вопросов. тем более число форм конечно и если сделать кешь на клиенте в формате того же xml можно последущие запросы просто исключить пользуясь данными клиента.

skmdeveloperИли есть другие варианты хранения древовидной структуры данных в БД?
я тебе уже говорил, доверься моим наброскам, я с БД уже работаю не один десяток лет.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36360300
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

+1
Для построения окон на лету есть HTML.
Для хранения на сервере есть EXE - на сервер.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36360441
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Old Nick,

+1
Для построения окон на лету есть HTML.
Для хранения на сервере есть EXE - на сервер.

Программа будет с GUI, а не c web-интерфейсом.
ПО многоплатформенное - подразумевается одновременная работа клиентов с разных ОС.
Пишется на Qt.

Как я понял, все будет нормально. Спасибо за идею о кэшировании. Это я упустил, поправлю.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36370501
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skmdeveloperПотом подумал. Может лучше хранить данные в таблице, где каждое поле это узел. Структура полей примерно такая:
1. Уникальный числовой идентификатор (тип serial)
2. Идентификатор родительского элемента.
3. Имя узла
4. Данные (если есть)


Зачем так делать? Концептуально, единицей первичного учёта у тебя является GUI форма, а не узел. Сам по себе узел не имеет никакого смысла для приложения, так зачем его вырывать из контекста, писать код, который будет собирать кусочки формы воедино, бороться с провалом производительности, поддерживать целостность данных? Зачем?

Исторически БД поддерживали только простые типы данных - строки, числа, даты и т.п.. Чтобы реализовать модель сложного объекта в реляционной БД, приходилось выполнять его декомпозицию. Например, чтобы строить индексы по некоторым атрибутам объекта, иметь удобный доступ к их значениям как в выражениях, так и в построителях GUI, навешивать ограничения целостности. Сейчас многие системы понимают XML, так что в некоторых случаях объекты можно хранить единым XML документом. При необходимости СУБД может делать декомпозицию этого XML документа на несколько таблиц.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36372449
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab, У меня cейчас так и работает. С XML в базе данных.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36372558
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skmdeveloper,
если хорошо работает, то пусть так и работает. Пока не вижу смысла менять. Для работы XML есть много API, в том числе и в SQL. Про PostgreSQL не знаю, в ORACLE для хранения XML можно прозрачно для SQL запросов создать структурированное хранилище сообразно новым потребностям приложений БД.

Может быть у тебя ещё какие то тайные требования есть?
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36373095
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab, С XML проблем нет, все хорошо работает. В Qt есть классы для его разборки, ничего со стороны использовать не приходится.
В общем решил пока ничего не трогать. Пусть работает как есть. Просто добавлю слой абстракции и кэширование, чтобы лишний раз не считывать одни и те же данные и будет ОК.

Спасибо.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36374555
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skmdeveloperВ Qt есть классы для его разборки, ничего со стороны использовать не приходится.

Я бы удивился обратному. В продвижение XML столько бабла вбухали, что теперь он поддерживается везде и всюду.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36374710
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabskmdeveloperВ Qt есть классы для его разборки, ничего со стороны использовать не приходится.Я бы удивился обратному. В продвижение XML столько бабла вбухали, что теперь он поддерживается везде и всюду. угу. его теперь используют везде где ни попадя. И попадают, извините за каламбур.
Самое клевое "попадание" с ним в 1Сv8. Там через него делается обмен. Очень часто наблюдаю на 1С-ных форумах темы типа:
- Ахтунг, при выгрузке сообщение не хватает памяти, подскажите что делать.
тынц
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36374808
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Придумывать собственный формат глупо. Поэтому используют XML. Есть конкурент YAML. Лишен многих недостатков XML. Есть библиотеки, чтобы работать с ним. В Ruby вообще встроен. В Вики используется именно YAML-подобныя язык разметки.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36374860
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skmdeveloperПридумывать собственный формат глупо.

А всё равно придумывают. Тут вона в БД поле BER кодированное (стандарт OSI). Оно конечно места поменьше занимает чем XML, что в данном случае крайне существенно, но парсер хороший уже два года как сделать не могут.
...
Рейтинг: 0 / 0
Древовидная структура данных в БД.
    #36374891
skmdeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YAML как раз занимает значительно меньше места, чем XML.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Древовидная структура данных в БД.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]