我正在编写一个带有访问前端的分布式数据库应用程序。本质上是一个带有一些表格和报告的 mde。我应该使用访问 mdb 来保存后端表还是使用 MySQL 或其他数据库?
7 回答
我个人会使用 SQL Server Express 或 MySQL。它们比 Access 后端扩展得更好,当您准备好离开 Access 时,您无需转换后端和前端即可完成此操作。
SQL Server Express 可能是一个很好的解决方案,但它也有一些非常严格的限制。此外,您需要确保其许可证符合您的需求。
如果您的并发性和可伸缩性需求受到限制(例如 10-15 个具有中等 I/O 量的并发用户),则使用 MDB 后端没有任何问题。我不是 Access 的粉丝,但我从经验中知道这通常会奏效。
此外,管理 MDB 后端几乎是免费的,而 MySQL 或 SQL Server Express 则需要一些实际的 DBA 工作。如果你有理由确定你永远不需要它,那么使用更大的东西是没有意义的。
对于实际部署,您可能希望使用真正的数据库,而不是 Access/Jet DB 引擎。
话虽如此,访问的好处在于它有一个工具(在菜单中查看)将单个 MDB 文件拆分为数据库和代码。这样做,然后将代码瞄准新的数据源。
您可能需要稍微修改一些查询。
我认为 SQL Server Express 将是您的最佳选择。MySQL 是一个很好的后端数据库,但 Access 与 SQL Serv Express 集成得更好(当然,MS 希望你使用它自己的产品,即使它是免费的),而且 Express 版本非常好,因为它是免费的。如果应用程序最终需要在以后大规模扩展,那么升级到付费 SQL Server 很简单,驱动程序也是一样的。
我认为您应该定义“分布式数据库应用程序”的含义。据我了解,该术语通常会使 Jet 退出后端的运行。
如果没有说明用户数量、操作环境、安全性和可靠性要求等,没有人可以真正回答您的问题。如果是针对 10 个用户且不是业务线数据,那么 Jet 后端可能是完美的,并且可以进行开发和管理小菜一碟。如果您有 100 个用户,您肯定希望使用服务器后端。如果您有重要的安全考虑(例如,HIPAA 合规性),您可能希望使用具有内置服务器级安全性的数据库,而不是使用 Jet。
但是有很多应用程序都可以使用 Jet 后端——快速且完全可靠。
还有第三种选择:您可以使用EQL Data之类的东西,这样您就可以使用普通的 Access 后端,但为每个人提供自己的副本(并在他们之间同步)以帮助解决多用户可伸缩性问题。这样,您就无需考虑使用“真实”数据库后端的复杂性。
选择 MySQL,您需要在每个客户端中安装 MySQL 连接器 (ODBC)。如果您不喜欢分发其他组件,SQL Server Express 将是一个不错的选择,此外,ADO 与 MS SQL 配合得更好。