Russian Qt Forum

Qt => Общие вопросы => Тема начата: mwChief от Февраль 24, 2010, 01:17



Название: Хранение данных
Отправлено: mwChief от Февраль 24, 2010, 01:17
Программа загружает данные из базы при начале работы и сохраняет только при завершении работы или по требованию. Часть данных (некоторые небольшие таблицы) загружается обязательно, остальные могут быть загружены по требованию. В процессе работы данные могут изменятся. Как правило это только добавление, возможно изменение и удаление (удаление только оперативных данных которые добавились в этой сессии), но из базы данные никогда не удаляются.
Вопрос как правильно организовать хранение данных загруженых в память? Чтоб из всех модулей программы иметь к ним доступ.
Вопрос довольно общий, непосредственно с Qt, наверное, не связан, но поскольку пишу я эту программу на Qt решил задать этот вопрос здесь.


Название: Re: Хранение данных
Отправлено: lit-uriy от Февраль 24, 2010, 06:15
Ну затея по моему не фонтан, лучше просто с БД работать. Но если приспичило данные держать рядом с программой, до тех пор пока явно пользователь не скажет сохранить, то можно воспользоваться локальной БД, в которую изначально копируются данные из основной БД.
Например, можно использовать SQLite или {Firebird|MySQL}embeded


Название: Re: Хранение данных
Отправлено: voronElf от Февраль 24, 2010, 10:18
Идея конечно не фонтан, и нужно глубоко задуматься, насколько оправданно именно так реализовывать.

Ну если уж решил, то со структурами данных разбираться в зависимости от структуры бд (QList и динамическая память в помощь  ;) ). А чтоб из всех модулей иметь доступ: делаешь класс - поставщик данных, один экземпляр на всю прогу этого класса, в каждом модуле адрес этого объекта имеешь и обращаешься. На основе такого поставщика данных можно и модели наворачивать, если нужно отображать данные в представлениях.


Название: Re: Хранение данных
Отправлено: ритт от Февраль 24, 2010, 11:05
> делаешь класс - поставщик данных...

да-да, это всё прекрасно, но не проще ли использовать sqlite с таблицами в базе :memory ?
посмотрите примеры/демки скл из состава кутэ - быстро и сердито.


Название: Re: Хранение данных
Отправлено: mwChief от Февраль 24, 2010, 14:55
Большое всем спасибо, действительно задумался так ли мне нужны таблицы в памяти.
И еще один вопросик, где лучше держать настройки программы? Была мысль держать их тоже в базе, но не слишком ли это круто для десятка параметров? :)


Название: Re: Хранение данных
Отправлено: lit-uriy от Февраль 24, 2010, 15:17
>>для десятка параметров?
Например, QSettings