2010-06-03 83 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)你不認爲你會改變數據庫....但是,如果版本改變或類似的事情發生,迫使你遷移呢?