【问题标题】:Remote access to an Access database远程访问 Access 数据库
【发布时间】:2018-04-02 16:39:08
【问题描述】:

我需要为我的公司开发一个非常简单的数据库(可能不超过4-5个表,每个表最多50条记录),要求如下:

  • 数据库本身(很可能是 Access 文件)必须存储在服务器上并通过http://www.something.com/my_db.mdb 访问
  • 来自 6 个不同国家的用户(互联网带宽普遍较低)必须能够访问此数据库并通过几个掩码查看/编辑它,以及生成自动报告/摘录
  • 整个解决方案必须尽可能稳健且技术含量最低,以减少维护问题(理想情况下,根本不需要开发)
  • 我无法为每个用户支付 Access 许可证,并且无法选择使用 OpenOffie 或 LibreOffice(因为我无法将其安装在所有用户的计算机上)

我的第一个(也是幼稚的?)想法是:

1) 创建仅包含数据的 mdb 文件并将其存储在网络服务器上

2) 在另一个文件中创建版本掩码和自动报告,将在线文件定义为数据源

3) 将包含版本掩码的文件部署到所有用户的计算机上

4) 用户只需打开本地文件即可通过版本掩码编辑远程数据库

我的方法在某种程度上是现实的吗?您是否看到另一种更有意义的方法?我可以使用 1 个单一访问许可证来实施我的解决方案吗?

非常感谢您的意见和见解!

【问题讨论】:

  • 您通过 HTTP 下载来访问数据库?这听起来像是第 1 步的一团糟。这就是制作 SharePoint 的原因。
  • 不,我们的想法不是下载数据库!换句话说,我可能没有 IT 资源来设置真正的数据库(MySQL 或其他),但我希望来自不同国家的用户访问和编辑单一数据源。这个通过 Access 的解决方案在我看来是最低技术和最直接的选择,但我可能忽略了一些基本的技术和架构问题,这就是我在这里发布的原因:) -- PS:SharePoint 会在某个时候出现,但尚未在我们公司部署
  • 我认为 Christoph 的想法是正确的:围绕它构建一个简单的包装器,您可以将其托管在您的 Web 服务器上。一些数据库可能通过 HTTP 工作(例如CouchDB),但 Access 不是其中之一。

标签: ms-access ms-access-2010


【解决方案1】:

如果您只提供 mdb 文件作为文件源,可通过 HTTP 访问,用户将无法连接到数据库,因为在 HTTP GET 文件下载中,他们只是将 .mdb 文件下载到本地计算机.当他们在数据库中编辑某些内容(例如添加记录)时,将仅在本地文件的本地副本上完成。

如果你想使用 access 数据库,我最简单的方法是你实现一个非常小的 Web 应用程序(例如 ASP.NET),它连接到 .mdb 文件(然后 .mdb 文件可以在服务器上的私有目录)。然后将您的 Web 应用程序部署到 Internet Information Server(Microsoft IIS 作为 Web 服务器)。

您可以将数据表单提供为使用 ASP.NET 实现的 Web 应用程序,或者开发单独的客户端来访问您使用 .NET 开发的 Web 服务。

【讨论】:

  • 谢谢,这很清楚!但是,因为我们没有专门的 IT 人力资源,也没有聘用外部资源的预算(这个数据库远不是核心流程),所以我想选择不涉及开发或任何类型服务器的东西/数据库管理。如前所述,这里谈论的是一个非常小的数据库。你有没有发现可以满足这些要求的东西?
  • 查看上面发布的评论 tadman。他提到 CouchDB 有这样的功能,但我不知道这个数据库。否则,我建议您检查一些 ASP.NET 示例,许多示例显示了如何在数据库中存储数据。如果您不想使用 IIS 但更喜欢 Apache(或者您的网络托管商仅提供支持 PHP/mysql 的 apache Web 服务器),您可以使用 PHP 快速开发此类功能。我想当你能够“开发”一个访问数据库时,你也将能够开发一个 PHP/mysql 数据库。对于讲德语的人,有一本非常好的在线书籍(SelfPHP)。
  • 好的,我会朝这个方向研究!我并不是真的害怕 php 或任何语言中表单的开发部分,而是更害怕脚本的维护,因为我真的没有为此分配资源。此外,我无法直接访问 IT 基础架构,这使得设置 Apache 服务器、php 解释器等变得困难。因此,考虑到我的框架限制,我最初的想法可能完全不现实。非常感谢您抽出宝贵时间!
  • 出于开发目的,我建议使用 Oracle Virtual Box 虚拟化环境(作为服务器的替代品),在其中,您可以安装 apache、mysql 等作为 XAMPP 捆绑包的一部分。请参阅apachefriends.org/de/index.html(刚刚识别的 XAMPP 现在带有 MariaDB - 如果您更喜欢 mysql db,请参阅stackoverflow.com/questions/39654428/…
  • 我会调查的!但是,再次,在我完成虚拟盒子中的某些东西之后,我需要部署到一个“真正的”服务器,使用“真正的”Apache 等。这可能是我的情况的瓶颈,因为我没有可以访问服务器,因为我们的 IT Dpt 可能不会特别高兴随机员工要求他们安装和维护非标准技术......如果我可以将 mdb 文件上传到网络服务器,他们可能会更加合作...但是,正如您所指出的,这不是一个选择。
【解决方案2】:

您可以尝试基于云的解决方案,例如; Google Firebase

【讨论】:

    【解决方案3】:

    对于这种类型的需求;不应使用静态的 Access 表,因为 Access 是前端数据库,而应使用 SQL Server Express 等后端数据库。 SSE 是免费的,如果长期需要,它可以更好地提供真正的基于 Web 的功能。

    我还要说的是,在成本/管理方面 - 人们应该真正考虑使用其中一种在线数据库服务,例如 soho、knack、airtable 等。其中一种可能比创建网络更快、更便宜为这么小的需求从头开始应用程序。

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 2018-02-14
      • 2015-05-29
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      相关资源
      最近更新 更多