Разделение базы данных MS Access - Расположение части переднего плана - PullRequest
2 голосов
/ 07 января 2010

Одной из лучших практик , как указано в Microsoft для Access Development, является разделение приложения Access на 2 части; Внешний интерфейс, в котором хранятся все объекты, кроме таблиц, и конец, в котором хранятся таблицы.

На странице msdn есть ссылка на статью Разделение баз данных Microsoft Access для повышения производительности и упрощения сопровождения , в которой подробно описывается процесс.

Рекомендуется, чтобы в многопользовательской среде Back End сохранялся на сервере / в общей папке, а Front End распространялся для каждого пользователя.

Это означает, что каждый раз, когда вносятся какие-либо изменения во внешний интерфейс, их необходимо развертывать на каждой пользовательской машине.

Мой вопрос:

Предполагая, что сами пользователи не имеют прав на изменение части интерфейса приложения, каковы будут недостатки / опасности, связанные с оставлением этого на сервере, а также рядом с его копией?

Я вижу здесь проблемы с производительностью, но есть ли здесь какие-либо опасности, такие как возможные повреждения и т. Д.?

Спасибо

EDIT

Просто для пояснения, указанный сценарий предполагает один интерфейс, хранящийся на сервере и совместно используемый пользователями.

Я понимаю, что рекомендуется развертывать FE на каждой пользовательской машине, но мой вопрос больше в том, что опасно, если этого не сделать.

например. когда вам дают существующее решение, которое использует подход FE и BE на сервере. Если предположить, что производительность приемлема, а клиент не хочет менять подход, вы все равно будете настаивать на этом? А почему именно? Например, опасность возможного повреждения данных будет достаточно веским аргументом, но так ли это?


Это часть моего предыдущего вопроса От SQL Server к MS Access 2007

Ответы [ 4 ]

5 голосов
/ 07 января 2010

Единственным недостатком, связанным с тем, что на сервере остаются отдельные пользовательские копии FE, является производительность сети. Это не будет иметь никакого значения, поскольку повреждение данных.

Но вы не должны делиться FE несколькими пользователями. Это склонно к коррупции на ИП и другим странностям. Каждый пользователь должен получить свою собственную копию FE. Также вы не можете заменить ее новой копией, пока пользователи ее используют.

Клиент годами работал с FE на отдельных пользовательских папках на файловом сервере, но запускал msaccess.exe в кластере Citrix. ИТ-персонал не хотел, чтобы что-либо обновляло локальные жесткие диски систем кластерного сервера Citrix.

Что касается развертывания FE, см. Auto FE Updater на моем веб-сайте. На следующей неделе произойдут огромные изменения, которые значительно облегчат как первоначальную установку сервера, так и более простую первоначальную установку пользователя.

2 голосов
/ 07 января 2010

Сохранение внешнего интерфейса на сервере более или менее отрицательно скажется на цели разделения базы данных.Размещение внешнего интерфейса на рабочем столе уменьшает сетевой трафик, поскольку приложение не извлекается для каждого использования, и позволяет внешней базе данных содержать таблицы с данными, которые являются частными для каждого пользователя для хранения настроек или временных данных.

Если вы хотите избежать повреждения данных, важно, чтобы у каждого пользователя была своя копия внешнего интерфейса.Аллен Браун предлагает более подробную информацию о том, как избежать коррупции, в this article

Существует ряд утилит, доступных для обновления версии интерфейса на рабочем столе, или вы можете даже написатьутилита самостоятельно.

0 голосов
/ 15 июля 2010

Как программист Access 2007, использующий интерфейсную часть (FE), которая связана с базой данных (BE) (например, разделенная база данных), я выполнил оба вышеупомянутых действия. Отправка обновленного FE пользователям имеет другие издержки, особенно если используются сторонние элементы управления или приложения.

Что касается Citrix, то в Access 97 дней менеджер Citrix смог разрешить мне поместить одну копию FE в расположение файла на сервере. Это создаст новый экземпляр для каждого пользователя, который вошел в систему. Мы смогли использовать более 50 пользователей без каких-либо последствий. Я должен уточнить это, сказав, что в коде Access VBA используются эффективные обновления и транзакции с откатами, а не просто операторы Select.

Моя проблема сегодня - Access 2007, работающий на сервере Citrix (Windows 2003). Когда я являюсь единственным пользователем, вошедшим в Citrix, приложение (я выбрал большой сложный отчет, в котором для теста создается автоматизированная электронная таблица Excel), оно работает в пределах 1% быстрее, чем при запуске FE с моей рабочей станции XP и связи с BE на жестком диске сервера Citrix.

Но когда два или три человека входят на сервер Citrix, один и тот же отчет занимает в три раза больше времени. Однако, хотя в Citrix вошли два или три человека, я могу запускать свой FE с моей рабочей станции XP, и он работает точно так же, как однопользовательский на Citrix.

По этой же причине НЕ рекомендуется размещать FE на общем сетевом диске, совместно используемом двумя или тремя пользователями. Access FE не предназначены для совместного использования (* Я позабочусь о деталях *). Вот почему люди размещают FE на каждой рабочей станции и совместно используют одну базу данных (BE).

Чего мне не хватает в Citrix, так это какой-то хорошей пошаговой инструкции по запуску Access FE в Citrix. В идеале, один файл может быть размещен. Когда пользователь входит в Citrix, Citrix должен сделать копию FE и назначить ресурсы (для доступа) для входа этого пользователя. Я думаю, что это именно то, что MS Office делает автоматически или, по крайней мере, имеет инструкции, как это сделать.

Если такой документ существует, пожалуйста, опубликуйте его. Такой программист, как я, хотел бы передать его администратору Citrix. Это решило бы много проблем.

0 голосов
/ 07 января 2010

Я согласен с остальными. Хранение файлов на сервере не рекомендуется. Просто поместите пакетный файл на ваш сервер, который выполняет push. Если у вас есть обновление, отправьте ярлык на командный файл по электронной почте. Это одно из многих решений. После того, как вы его настроите, это не проблема.

Сет

...