2010-06-03 130 views
1

我有兴趣了解更多关于PHP中数据库抽象的设计实践&工厂方法。作为背景,我的网站是一个共同利益的社交网络社区,目前处于测试模式。数据库抽象和工厂方法

目前,我已经开始将旧对象检索代码移至工厂方法。但是,我确实感到自己通过在每个函数/方法中保留大量的SQL表名和结构来限制自己。

问题:

  1. 有没有理由使用PDO(或类似),如果我不期待 切换数据库?

  2. PDO接口可以与MySqli预处理语句I 当前使用吗?

  3. 它会帮我将表名与每种方法分开吗? (如果不是,其他设计模式可能需要 来研究?)

  4. 一旦我有一个非常大的成员基础,它会减慢我的网站吗?

+2

是不是所有社区网络社区都针对“特殊兴趣”? – 2010-06-03 19:48:45

+0

我想我应该称之为共同利益。就像facebook/myspace一样,任何人都可以成为通用社区。例如,单板滑雪社区是共同的兴趣。 – pws5068 2010-06-03 19:49:59

+1

我想你应该问这个PDO,而不是PEAR。 PDO是PHP的一部分,并被编译为本地代码。 – webbiedave 2010-06-03 20:31:40

回答

1

Nettuts最近有一篇关于some of the benefits to using PDO的文章。

至于你关于抽象的问题,你可以看看对象关系映射(Object Relational Mapping,ORM),它可以让你像原生php对象一样访问数据库记录。我的大部分经验都是在Kohana框架中进行的,我喜欢他们的ORM的工作方式,但是很多流行的php框架应该有很好的数据库抽象方法的例子。我发现,阅读别人以“正确”方式去做的地方可以帮助我。

1

我想第二个Rookwood看着ORM。我有Doctrine良好的经验。自己建造一些东西将会浪费你在这些情况下的时间。

1

我会推荐使用PEAR或PDO ..为什么?

1)它经过数万名程序员的测试和使用。如果你需要另一位程序员来帮助你,他们很有可能知道PDO。他们几乎没有机会知道你的API。

2)你不认为你会改变数据库....但是,如果版本改变或类似的事情发生,迫使你迁移呢?