4

我正在使用 tiny_tds 连接到远程数据库,它仅用于 MySQL 和 Sql 服务器。他们是否有任何其他可用的 gem 可以访问任何供应商数据库?

4

1 回答 1

1

您不了解数据库访问的工作原理。

我们使用驱动程序与数据库通信。数据库供应商有不同的用于连接的协议,因此驱动程序会处理它。

在该层之上,我们将有一个与驱动程序对话的 API。这就像 DBI,它知道如何与不同的司机交谈。我们仍然必须使用数据库的查询语言进行编写,但 DBI 给了我们一些优势。从一个数据库转换到另一个数据库很痛苦,因为通常所有查询都会更改,并且“标准”之间的不一致会出现。

在该层之上,我们会有 ActiveRecord 或 Sequel 之类的东西,它们是 ORM,并且大多与 DBM 无关。它们允许我们使用一致的语言来定义我们与数据库的连接、创建查询和处理交互。如果我们想与不同的数据库管理器交谈,我们安装驱动程序,更改连接字符串,其余的应该可以工作。

这是一个巨大的时间节省和“非常好的事情”。您可以将 SQLite 用于您的概念验证,并将 PostgreSQL、MySQL 或 Oracle 之类的东西用于您的生产系统,而无需更改查询。通常只有 DSN/连接字符串会改变。

通读 Sequel 的“连接到数据库”文档以了解 ORM 可以做什么,以及“ Sequel: The Database Toolkit for Ruby ”和“ Cheat Sheet ”以了解 Sequel 可以做什么。

于 2013-04-18T06:15:36.100 回答