Название: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: Cyrax от Март 12, 2008, 20:11 Имеется клиентское приложение, работающая с БД (чтение, обновление, добавление данных). Вопрос следующий. Стоит ли создавать промежуточное хранилище (manager - больше всего подходит) данных, в которое сначала считывается часть БД, затем работа с данными происходит уже не через саму БД, а через это промежуточное хранилище. Ну а за сохранение новых данных в самой БД отвечает это хранилище (например, политики - либо в конце вся новая информация из хранилища сливается в БД, либо сразу, либо ещё какие-то политики).
Такие хранилища можно создать для каждой области данных, например, для работы с данными о сотрудниках, для работы с заказами и т.д. Основные плюсы: 1. Можно задавать (хранилищу, менеджеру) режимы взаимодействия с БД, а также отменять все изменения, сделанные с момента последнего сохранения. 2. Как правило, в БД информация хранится в форме, неприемлемой для её отображения и изменения в клиентском приложении (это только в учебниках ситуация иная). Вопрос отображения можно решить с помощью представлений. Но сложные манипуляции с данными при сохранении представлениям не под силу. Основные минусы: 1. Области данных, охватываемых промежуточными хранилищами, как правило, пересекаются. Возникает соответствующая проблема синхронизации или исключения пересечения. Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: WW от Март 12, 2008, 21:43 Так. Марлезонский балет. часть 2-я.
Мы еще не услышали окончание первой части, кажись в конце февраля должна быть. По теме. Читать (и еще раз читать и учить) теорию БД, то бишь, что такое атомарность изменений, транзакции, ACID короче, и т.д., учить SQL. После просветления - читать о распределенных приложениях. Кста! Чем же закончилась первая часть балета? Помниться там мы изучали библиотеку Qt. ;D ;D ;D Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: Пантер от Март 13, 2008, 12:42 Чувствую и этот пост разрастется листов на 10. ЫЙ :)
Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: Cyrax от Март 13, 2008, 22:19 Цитировать Так. Марлезонский балет. часть 2-я. В конце февраля, насколько я помню, должен был быть опубликован сюжет заключительной части балета. На данный момент возможно с уверенностью сказать следующее:Мы еще не услышали окончание первой части, кажись в конце февраля должна быть. 1. Действующих лиц будет 5. 2. Премьера состоится не раньше лета 2008 года... Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: WW от Март 13, 2008, 22:59 А писать снова всем форумом будем? :o ;)
Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: Cyrax от Март 14, 2008, 10:43 Цитировать А писать снова всем форумом будем? Нет, я сам всё сделаю. Всё-таки дело нужно до ума довести...Название: Re: Клиентское приложение: оптимальная организация взаимодействия с БД... Отправлено: Cyrax от Март 20, 2008, 20:20 По сабжу. Вопрос рассматривается в пределах одного клиентского приложения. Одновременно может быть открыто несколько окон, каждое из которых работает со своей областью данных, эти области частично перекрываются. Одно приложение. Судя по всему, я не буду для каждого окна использовать свою реплику...
В случае с Qt-архитектурой модель-представление в роли такого manager'а может выступать модель данных, в случае QTableWidget - сам QTableWidget. Разница в том, что в первом случае имеется возможность задавать и реализовывать политику работы с базой данных на уровне модели данных, во втором - для реализации такой политики придётся вводить промежуточный manager, работающий с QTableWidget. |