2010-01-06 72 views
2

Access Development的最佳实践as specified by Microsoft之一是将Access应用程序拆分为2部分;保存除表格之外的所有对象的前端和保存表格的后端。拆分MS Access数据库 - 前端部分位置

MSDN的页面链接有到详细描述了过程中的文章Splitting Microsoft Access Databases to Improve Performance and Simplify Maintainability

建议在多用户环境中的后端存储在服务器/共享的文件夹,而前端被分配给每个用户。

这意味着每次有他们需要部署到每个用户的机器前端所做的任何更改。

我的问题是:

假设用户本身没有权利修改应用程序的前端部会是什么让这个服务器上的弊端/危险以及旁边后端复制?

我可以看到这里的性能问题,但是否有任何危险喜欢这里可能损坏等?

谢谢

编辑

只是为了澄清,有关规定的情况下,假定存储在服务器上,并通过用户共享一个前端。

我的理解,该建议是要有FE部署到每个用户的机器,但我的问题是更多的危害有哪些,如果未完成。

E.g.当你得到一个现有的解决方案,在服务器上使用FE和BE的方法。假设性能是可以接受的,并且客户不愿意改变方法,您是否仍然推动这一改变?为什么呢?例如,可能的数据损坏的危险肯定会是足够强大的论据,但情况如何?


这是跟进我刚才的问题From SQL Server to MS Access 2007

+1

如果问题是关于在服务器上为每个用户存储一个单独的前端,那么这仅仅是一个性能问题(常识 - 前端是“应用程序”,我们不会安装用户应用程序现在是一台服务器,尽管这在15年前Novell环境中很常见)。如果你打算分享一个单一的前端,这是一个不同的水壶,并且应该不惜一切代价避免。 – 2010-01-07 02:51:43

+0

但我们仍然在终端服务器/ Citrix服务器上安装用户应用程序。 – 2010-01-07 04:03:58

+0

谢谢大卫我同意这一切听起来是常识。当你说“共享一个单一的前端...应该不惜一切代价避免”你能真正澄清为什么,除了假设用户没有权限修改FE – kristof 2010-01-07 09:30:10

回答

5

在服务器上留下个别用户特定FE副本的唯一缺点是网络性能。就数据损坏而言,它不会产生任何影响。

但是你不应该在多个用户之间共享FE。这很容易造成富裕和其他怪异腐败。每个用户应该得到他们自己的FE副本。当用户使用它时,您也无法用新副本替换它。

客户端在文件服务器上的单个用户文件夹上运行多年的FE,但在Citrix群集中运行msaccess.exe。 IT员工不希望更新Citrix群集服务器系统的本地硬盘驱动器。

至于部署富裕看到我的网站Auto FE Updater。巨大的变化将在下周进行,使初始服务器安装和用户初始安装更容易。

+0

谢谢托尼。如果我理解正确,那么您在这里描述的情景是,每个用户在服务器上都有一个单独的FE - 而且看起来很直观,唯一的缺点就是网络性能。那么所有用户只有一个FE共享的情况呢? – kristof 2010-01-07 09:24:48

+0

和分享Auto FE更新程序的大好声音 – kristof 2010-01-07 09:25:32

+0

为了防止共享FE,我更新了我的发布以响应OP的编辑。感谢您对“Auto FE更新程序”的评价 – 2010-01-07 22:34:08

2

,以保持前端服务器上的部分将更多或更少的失败分裂数据库的目的。将前端放在桌面上可以减少网络流量,因为不会为每次使用检索应用程序,并且允许前端数据库包含具有每个用户专用于存储设置或临时数据的数据的表格。

如果你想避免数据损坏,但每个用户都应该有自己的前端的副本是非常重要的。 Allen Browne提供了更多关于避免腐败的详细信息this article

根据需要,有许多实用程序可用于更新桌面上的前端版本,或者您甚至可以自己编写这样的实用程序。

+0

感谢Remou,我会考虑这样一个事实,即您可以开发更新到您的FE,然后通过简单地替换旧的和新的更新来部署更改,而不必担心数据是单个文件解决方案的一大优势。这在我描述的情况下不会丢失。对性能的影响是非常直观的,但我只是想知道是否有更严重的陷阱,如数据损坏等 – kristof 2010-01-07 09:39:05

+0

我已经添加了一点我的答案。 – Fionnuala 2010-01-07 11:11:25

+0

+1感谢您的更新 – kristof 2010-01-08 11:53:44

0

我同意其他人。不建议将fe保存在服务器上。只需在您的服务器上放置一个批处理文件即可。当您有更新时,通过电子邮件发送批处理文件的快捷方式。这是许多解决方案之一。一旦你设置它,这不是一个问题。

赛斯

+1

在批处理文件中运行快捷方式的用户可能会收到安全警告。我宁愿不让用户养成忽视安全警告的习惯。另外一些用户将永远不会运行这些批处理文件等等。 – 2010-01-08 02:55:28

0

由于使用链接到后端的前端(FE)的Access 2007编程器(BE)数据库(又称拆分数据库),我已经做了以上两者。向用户发送更新的FE还有其他开销,尤其是如果使用第三方控件或应用程序。

至于思杰,在访问97天后,Citrix经理允许我将FE的一个副本放在服务器文件位置。它会为每个登录的用户创建一个新实例。我们可以使用超过50个用户,但无任何影响。我必须通过说Access VBA代码使用有效的更新和事务回滚而不仅仅是简单的Select语句来限定这一点。

我今天的问题是在Citrix服务器上运行的Access 2007(Windows 2003)。 当我是唯一一个登录到Citrix的人时,该应用程序(我选择了一个大型复杂报告,通过自动化测试创建了一个自定义Excel电子表格),它的运行速度与从我的XP工作站运行FE的速度一样快,到Citrix服务器硬盘上的BE。

但是,当两三个人登录到Citrix Server时,同一报告需要三倍的时间。但是,虽然有两三个人登录到Citrix,但我可以从我的XP工作站运行我的FE,它的运行方式与citrix上的单用户完全相同。

由于同样的原因,不建议在两个或三个用户共享的共享网络驱动器上发布FE。接入FE不是为了共享而设计的(*我将省去细节*)。这就是为什么人们将FE放在每个工作站上并共享一个数据库(BE)的原因。

我在Citrix中发现的缺点是一步一步的“如何”在Citrix上运行Access FE。理想情况下,可以发布单个文件。当用户登录到Citrix时,Citrix应制作FE的副本并将资源(用于Access)分配给该用户的登录名。 我认为这正是MS Office自动执行的操作,或者至少有如何操作的说明。

如果存在这样的文件,请发布。像我这样的程序员会喜欢把它交给Citrix管理员。它会解决很多问题。

+1

你会发现Citrix管理员和一般的Windows服务器系统管理员不会“获取”访问权限,并且经常会以导致问题的方式调整内容。我没有任何问题的答案,因为我只部署过普通的香草WTS,没有Citrix服务器。我从来没有见过你在这种情况下描述的那种问题。我想知道你是否尝试过Tony的AutoFEUpdater来分发更改?他专门设计了它,以满足在Citrix/WTS环境中运行的要求。 – 2010-07-15 23:49:13