Russian Qt Forum
Апрель 27, 2024, 21:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Клиентское приложение: оптимальная организация взаимодействия с БД...  (Прочитано 6971 раз)
Cyrax
Гость
« : Март 12, 2008, 20:11 »

Имеется клиентское приложение, работающая с БД (чтение, обновление, добавление данных). Вопрос следующий. Стоит ли создавать промежуточное хранилище (manager - больше всего подходит) данных, в которое сначала считывается часть БД, затем работа с данными происходит уже не через саму БД, а через это промежуточное хранилище. Ну а за сохранение новых данных в самой БД отвечает это хранилище (например, политики - либо в конце вся новая информация из хранилища сливается в БД, либо сразу, либо ещё какие-то политики).
Такие хранилища можно создать для каждой области данных, например, для работы с данными о сотрудниках, для работы с заказами и т.д.

Основные плюсы:
1. Можно задавать (хранилищу, менеджеру) режимы взаимодействия с БД, а также отменять все изменения, сделанные с момента последнего сохранения.
2. Как правило, в БД информация хранится в форме, неприемлемой для её отображения и изменения в клиентском приложении (это только в учебниках ситуация иная). Вопрос отображения можно решить с помощью представлений. Но сложные манипуляции с данными при сохранении представлениям не под силу.

Основные минусы:
1. Области данных, охватываемых промежуточными хранилищами, как правило, пересекаются. Возникает соответствующая проблема синхронизации или исключения пересечения.
Записан
WW
Гость
« Ответ #1 : Март 12, 2008, 21:43 »

Так. Марлезонский балет. часть 2-я.
Мы еще не услышали окончание первой части, кажись в конце февраля должна быть.

По теме.
Читать (и еще раз читать и учить) теорию БД, то бишь, что такое атомарность изменений, транзакции, ACID короче, и т.д., учить SQL. После просветления - читать о распределенных приложениях.

Кста! Чем же закончилась первая часть балета? Помниться там мы изучали библиотеку Qt.
 Смеющийся Смеющийся Смеющийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 13, 2008, 12:42 »

Чувствую и этот пост разрастется листов на 10. ЫЙ Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Cyrax
Гость
« Ответ #3 : Март 13, 2008, 22:19 »

Цитировать
Так. Марлезонский балет. часть 2-я.
Мы еще не услышали окончание первой части, кажись в конце февраля должна быть.
В конце февраля, насколько я помню, должен был быть опубликован сюжет заключительной части балета. На данный момент возможно с уверенностью сказать следующее:
1. Действующих лиц будет 5.
2. Премьера состоится не раньше лета 2008 года...
Записан
WW
Гость
« Ответ #4 : Март 13, 2008, 22:59 »

А писать снова всем форумом будем?  Шокированный Подмигивающий
Записан
Cyrax
Гость
« Ответ #5 : Март 14, 2008, 10:43 »

Цитировать
А писать снова всем форумом будем?
Нет, я сам всё сделаю. Всё-таки дело нужно до ума довести...
Записан
Cyrax
Гость
« Ответ #6 : Март 20, 2008, 20:20 »

По сабжу. Вопрос рассматривается в пределах одного клиентского приложения. Одновременно может быть открыто несколько окон, каждое из которых работает со своей областью данных, эти области частично перекрываются. Одно приложение. Судя по всему, я не буду для каждого окна использовать свою реплику...

В случае с Qt-архитектурой модель-представление в роли такого manager'а может выступать модель данных, в случае QTableWidget - сам QTableWidget. Разница в том, что в первом случае имеется возможность задавать и реализовывать политику работы с базой данных на уровне модели данных, во втором - для реализации такой политики придётся вводить промежуточный manager, работающий с QTableWidget.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.