【问题标题】:What database is a good progression from MS Access for Coldfusion?什么数据库是 MS Access for Coldfusion 的良好进展?
【发布时间】:2010-06-09 19:48:06
【问题描述】:

到目前为止,我所有的(家庭)CF 学习都是使用 Access 作为数据库完成的,就数据库而言,我“明白了”。没有数据库服务器,也不需要登录数据库什么的,建立表关系简单直观。哦,它基本上可以免费部署。

但是,我现在正在开发一个应用程序,该应用程序可能会在多个企业中使用,并且可能有多达 50 个并发用户。我听说 Access 真的不适合多用户使用或应用程序的生产使用。你会推荐什么更合适,最好易于掌握,我的 SQL 需要最少的 tweeking(我使用了一个工具来转换为 MySQL,它处理连接的方式当然不同,我不想做太多调试),可视化界面可用的、可扩展的、可备份的,以及我还不知道我需要的任何其他东西!

【问题讨论】:

  • 您想重新构建您的数据库并且不想进行太多调试?这可能不是您的最佳职业道路。我的意思是真诚的。我们将应用程序从同一数据库的一个版本移动到下一个版本,并且出现了主要的调试问题。我已经在 IT 领域工作了 15 年,但我所做的一切都没有我刚开始时听起来那么简单。事实上,如果我第一次在代码上编译并且没有出现任何错误,我就知道有什么大错特错了。
  • 例如,在 Oracle 9i 版本中,GROUP BY 是使用排序算法完成的。结果,即使没有 order by 子句,使用 group by 的查询也会排序。在 10g 中,GROUP BY 是使用哈希算法完成的。返回未排序的数据。每个跳过添加订单的程序员都会让他们的数据乱序。但这很明显而且很容易找到。不幸的是,查询输出在一个单独的过程中使用,该过程针对已排序的数据进行了优化。当速度变慢时,每个人都将责任归咎于数据库升级。花了一些时间才发现这是草率的 SQL 而不是 DB。
  • 我查看了 mySQL 和 SQL Server Express,发现对于我正在执行的那种 CRUD SQL 查询,mySQL 几乎不需要重构。我重写的主要领域是 CONCAT。

标签: database ms-access coldfusion recommendation-engine


【解决方案1】:

我推荐SQL Server 2008 Express。它具有出色的功能集、图形 UI 管理工具,随着您的不断发展,您可以轻松地从它升级到更多商业解决方案。

【讨论】:

    【解决方案2】:

    您可以使用 MySQL 或 Microsoft SQL Server Express。两者都是免费的,而且都运行良好。

    不幸的是,无论您使用什么,转换数据库都会让您头疼。 Microsoft Access 不使用标准 SQL,因此字符串连接、函数等会有所不同。

    【讨论】:

    • 我确实在 Ubuntu 上尝试过 MySQL,但对于一个没有 Linux 经验的人来说,这一步太远了,我不得不放弃我的修修补补,只是为了按时完成工作。文件/目录权限和区分大小写对于习惯于 windows 和 CF 的人来说是一个真正的障碍。我想我会在 SQL server Express 上试一试,希望 SQL 语句的差异最小。
    【解决方案3】:

    如果您只是将 Access 用作数据库,那么 Microsoft SQL Server 在概念(和 SQL 方言)上自然是最接近访问的。

    但是,如果您的重点是 Web 开发,那么 LAMP 堆栈,特别是 MySQL 是更好的选择。您至少应该对一些基本的管理有所了解。

    我的经验是,主要挑战将是数据类型和字符串操作(听起来你有类似的问题)。

    一般来说,努力编写可移植的 SQL,因此最好阅读一些使其不可移植或避免使用特殊技巧的内容。如果你不能做到这一点,那么就使用代码进行抽象,甚至使用 ORM 工具。

    恕我直言,Access 的主要优点是它内置支持生成 UI 和报告,同时隐藏了许多底层 SQL。大多数 Microsoft 语言(尤其是 VB)都提供类似的功能。如果您使用过 UI 或表单,那么您现在必须学习用于生成 UI/表单/页面的语言或工具,以及如何使用 SQL。既然你提到了 ColdFusion,我假设你已经掌握了这些技能中的大部分。

    【讨论】:

      【解决方案4】:

      在做任何事情之前,我会选择一个数据库抽象层并重构现有代码以使用它。

      然后,几乎完全通用地换掉你的后端是相对微不足道的。

      如果您使用准备好的语句,您还将获得针对多种形式的 SQL 注入的保护。

      我还要指出,Jet/ACE 后端从来都不是基于 Web 的应用程序的好选择,因为 Web 服务器和 Jet/ACE 数据库引擎的线程模型和内存管理不匹配(尽管如果你使用 ADO,Jet 据说是线程安全的;我不太明白你如何神奇地将非线程安全的数据库引擎转换为具有数据接口层的线程安全引擎,但 Michael Kaplan 说是这样,他是在该类型主题上您可以信任的人类型)。

      【讨论】:

      • 你能否再给我一些关于你的意思的指示。你指的是ORM吗?如果您的意思更笼统,我的所有 sql 都在 cfcs 中,这是一定程度的抽象,但当然 Ilm 仍然必须调试我的 sql 语句。
      • 您可以查看 ColdFusion ORM 以了解这种类型的数据库抽象:help.adobe.com/en_US/ColdFusion/9.0/Developing/…
      • 我不知道 CF,因为我想在 1998-99 期间使用它,但找不到任何价格合理的虚拟主机提供它。无论如何,我的意思是类似于 PearDB 和 PHP 或 ADODB(如果不清楚,我选择了 PHP)。我希望有这样的数据库抽象库可以与 CF 一起使用,我只是不知道它们是什么。
      • 有一个易于使用但功能强大的 DB 抽象层,称为 DataManager for CF,我在几个简单的项目中使用过它:bryantwebconsulting.com/cfcs
      【解决方案5】:

      我没有任何使用 Microsoft SQL Server Express 的经验,所以我不能代表。但是,我确实将 MySQL 与 ColdFusion 8 一起使用,并且我一直对 MySQL 的功能、灵活性、易用性、社区支持和速度印象深刻。 PHP MyAdmin 非常简单,是 MySQL 的一个很好的 Web 界面。我的 $.02,随你怎么花吧。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-04
        • 1970-01-01
        • 2012-02-08
        • 2018-10-25
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多