2011-01-20 41 views
0

我只想在這裏提出一些討論。這個問題對我來說是因爲我需要重構一些混亂的代碼。如何設計類來處理有多個表的數據庫查詢?

通常,在Web應用程序中,MVC是該架構最常見的模式。現在,我想專注於模塊化部分。例如:我在設計中遵循article。對於每個數據庫表,我有一個VO類和它的DAO類。它適用於一個表中的簡單查詢。但是,還有很多其他情況,某些查詢需要幾個表,例如:查詢類似於「INSERT INTO TABLEB SELECT * FROM TABLEB」等。我處理這種查詢的策略是:我有一個DB類,例如:像PHP中的mysqli,直接使用它的mysqli :: query。有時候它可以正常工作,但是有時查詢會變得很長,我認爲代碼是不可維護的。 就像它在文章中所說的那樣,我可能需要爲n對n關係查詢創建另一個類,但是爲跨多個表的任何查詢創建一個類太方便了。我只是不知道這裏的粒度。有什麼建議麼?謝謝!

回答

0

一個好的提示可以使用活動記錄,結合MVC和你有一個強大的框架。 (即使不是所有的Web框架都使用它)。

如果不是,請嘗試在模型之間建立「關係」,併爲每個模型使用insert(),get()函數。

例如:

$article->get(); 
$article->category->get(); 

第一「獲得()」將是一個查詢(使用數據庫類)選擇這個特定的文章,而第二個「獲得()」將是一個查詢根據「articles」表中的字段「category_id」選擇具有某個id的類別。

相關問題