问题标签 [database-abstraction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1359 浏览

php - php 共享数据库连接(设计模式帮助)

我有一个小型 php 应用程序,我想在上面构建一个数据库抽象层,上面有一些“模型”类型的类。

我正在使用 ezSQL_mysql 来完成数据库工作。

我的问题是设计应用程序的最佳方式是什么?我应该使用单例模式来共享数据库连接吗?我的“模型”类应该扩展 ezSQL_mysql 吗?或者,也许我完全不在这儿,需要做点别的事情。

我需要的是这样的

控制器.php

用户模型.php

sale_model.php

0 投票
5 回答
1452 浏览

php - 为什么要抽象我的数据层?

OOP 原则对我来说很难掌握,因为出于某种原因,我永远无法将它们应用到 Web 开发中。随着我开发越来越多的项目,我开始了解我的代码的某些部分如何使用某些设计模式来使它们更易于阅读、重用和维护,因此我开始越来越多地使用它。

我仍然不能完全理解的一件事是为什么我应该抽象我的数据层。基本上,如果我需要将存储在我的数据库中的项目列表打印到浏览器,我会执行以下操作:

我正在阅读所有这些关于 PDO 伟大之处的 How-Tos 或文章,但我不明白为什么。我似乎没有保存任何 LoC,我看不出它会如何更可重用,因为我上面调用的所有函数似乎都封装在一个类中,但做的事情完全相同。我看到 PDO 的唯一优势是准备好的语句。

我并不是说数据抽象是一件坏事,我问这些问题是因为我正在尝试正确设计我当前的类并且它们需要连接到数据库,所以我认为我会以正确的方式这样做。也许我只是在阅读关于这个主题的糟糕文章:)

我非常感谢任何关于该主题的建议、链接或具体的现实生活示例!

0 投票
1 回答
1162 浏览

scala - Scala:将结果集翻译成不同类型的多图

我将在 Scala 中创建 JDBC ResultSet 的包装器。
这个包装器旨在成为一个函数ResultSet => ParticularType
问题是我找不到制作 MultiMaps 的通用解决方案。

这是我获取集合的方式:

接下来是地图创建。它是集合创建的一种实现,由于映射非抽象性,它不是抽象的(在我的实现中它总是以 HashMap 为后端)。
在我看来,它应该是这样的:

如果可行,我会这样编写 ListMultiMap 创建:

问题是我不能使用VatPlace for V因为它当时没有声明。
我觉得抽象类型是很好的解决方案,但不知道如何正确对待它们。

这样的集合创建的正确方法是什么?

我也不确定是否可以覆盖已经在类层次结构中定义的抽象类型。

0 投票
5 回答
5143 浏览

mysql - MySQL:字段长度。真的有关系吗?

我正在使用一些数据库抽象层,其中大多数都使用诸如“String”之类的属性,它是 VARCHAR 250 或长度为 11 位的 INTEGER。但例如,我有一些长度少于 250 个字符的东西。我应该去减少它吗?它真的有什么有价值的区别吗?

提前致谢!

0 投票
1 回答
324 浏览

php - Database abstraction for creating tables/views in PHP

I'm wondering if there is a solution for creating database models (tables and views) independend from the used DBMS. I'm using Zend Framework at the moment and the abstraction for the basic CRUD operations is really great, but it doesn't provide the abstraction for creating tables and views. I know some ORM Frameworks provide this functionality, but sadly it's not possible to use an ORM in my case.

Thanks!

0 投票
0 回答
437 浏览

android - Android/iOS 应用程序的可扩展在线数据库抽象层的最佳实践?

对于 Android(或 iOS)应用程序开发,当您需要从托管在某处(例如网站)的数据库中访问信息时,常用的方法是创建一个连接到数据库的页面(在我的例子中是 PHP 页面)并输出 JSON,或 PLIST 或其他。应用程序访问该页面 URL,然后检索数据并对其进行处理。

此方法允许您访问远程数据库,而无需在应用程序代码中透露数据库安全细节。这是一种粗略的抽象层。

我正在尝试将这个抽象层设计得尽可能灵活。如果我创建一些页面来检索一些数据并且它适用于我当前版本的应用程序,那就太好了。但是如果我在未来的版本中更改了某些内容并且检索到的数据需要稍有不同,那么我必须创建一个备用页面。我将不得不保留旧页面不变,以免破坏我的应用程序的任何旧版本。

有没有一种很好的方法来设计这样一个灵活且面向未来(尽可能)的抽象层?

0 投票
7 回答
34032 浏览

php - 迄今为止最好的 PHP DAL(数据抽象层)

到目前为止,在任何我们可以善意重用的开源项目下开发的最好的 PHP DAL(数据抽象层)是什么?

我发现很难为我的应用程序选择一个充分支持对大多数常见数据库系统(MySQL、PostgreSQL、MSSQL、Oracle 等)的抽象的 DAL,并且是:

  1. 广泛测试,
  2. 具有良好的接口(可读的方法名称,良好的参数传递策略),
  3. 快速地,
  4. 轻的,
  5. 提供缓存(例如与 Memcache 集成或支持良好的缓存机制),
  6. 开源许可证,
  7. 至少应该有 MySQL/MySQLi 的适配器(基于非 PDO)

一些需要考虑的库:

请不要考虑:

  • PDO
  • 所有 ORM(但是,Doctrine 似乎除了 ORM 之外还有一个单独的 DAL)
0 投票
2 回答
200 浏览

php - 既然我们有了 PDO,那么抽象数据库处理是否有意义?

我正在尝试创建一个用于学习目的的数据库抽象类,您可以通过执行以下操作创建与您拥有驱动程序的任何数据库的多个连接:

或者...

但是我不得不考虑一下,除非您需要管理与工厂对象的多个连接,否则随着 PDO 的出现真的不需要这样的东西对吗?

我的问题是,您认为对 PDO 进行更多抽象层有用吗?为什么?

0 投票
2 回答
1766 浏览

.net - 使用静态方法与数据库交互 - 任何潜在问题?

我正在寻找一个处理 MVC3/.Net 应用程序的数据库访问的类。

该类是静态的,并为常见的 DB 查询提供了很好的便利方法 - 诸如“GetColumnBValueForColumnA()”之类的各种有趣的东西,以及更复杂的查询。它针对给定的解决方案和域很好地考虑/优化。

但是,将类视为静态的,引发了一些关于这可能是一个坏主意的半遗忘记忆(也许在多线程的上下文中?),我无法摆脱这种感觉。

保持这种类静态是个好主意,还是应该为每个数据库调用实例化它?

0 投票
2 回答
3900 浏览

php - 数据访问层和数据库抽象层的区别以及重构数据库类

可能重复:
数据抽象层和数据访问层有什么区别?

我刚刚阅读了关于 nettuts的这篇文章。我有点困惑。数据访问层数据库抽象层有什么区别?

另外,我应该为此制作自己的自定义类还是使用 PDO 更好?

我有一个DatabaseOps执行所有 CRUD 操作的类。其他类(例如 User)继承自它并使用此类中的方法来执行 CRUD 操作。我有另一个名为的类Database,它执行打开连接、关闭连接、获取数组、确认查询等。我应该将它们写入单个类(数据访问/抽象层)吗?哪一个会更好?