2012-01-31 45 views
1

我想在MVC模式中編寫一個Web應用程序,我想知道是否有一個類與所有數據庫調用將被應用程序使用的良好實踐在這個班上。PDO數據庫訪問的PHP編程設計模式

那麼只需在需要時創建此類的實例?

或者將數據庫調用混合到需要訪問數據庫的任何特定類(模型或控制器)中是否更好?

回答

1

嗯,這是一個很好的問題。這將是更多的個人意見,但我通常做的是創建一個單一的數據庫對象來處理所有數據庫調用,然後我創建不同的數據庫對象,我需要什麼。例如,我會創建一個UserDB對象,並將這些數據庫調用放在它對用戶唯一的位置。如果你有用戶組,你也可以創建一個UserGroupDB對象並使用它來調用你需要的所有數據庫查詢。這允許您的代碼易於閱讀,並且可以在系統的多個部分中使用,同時只將DB邏輯保存在單個位置。你不想用你所有的數據庫查詢創建一個數據庫對象,因爲這是顯而易見的開銷,因爲系統中的所有頁面都不需要大多數查詢。

我希望這會有所幫助。

1

通常情況下,數據訪問由模型處理,但有些情況下模型與數據訪問層不同義。

爲了更簡潔的代碼,創建一個抽象類可能會更明智一些,它將爲您擁有的每個模型處理數據訪問層和具體類。

0

在我的實踐中,數據訪問對象DAO只是在SQL中有所不同。因此,使用一個DB對象封裝查詢,包括選擇和修改(更新,插入和刪除),然後不同的表或模塊具有不同的DAO來構建其特定的SQL並使用DB對象執行查詢。