2015-09-04 30 views
0

我們有一個forum_threadsforum_posts表。帖子連接到線程。一個用戶想開始一個新的線程與第一篇文章,所以:PHP,在哪裏放多個數據庫操作邏輯?

class ForumPostModel 
{ 
    public function open ($topic, $firstComment) 
    { 
     $newThreadId = ForumThreadModel::createNew ($topic); // this will return with the ID of the new thread 
     return $this->insertInto ($newThreadId, $firstComment); 
    } 
} 

這個僞代碼顯示了先插入一個線程,並獲取其ID,然後將它的意見,並與新的ID返回。除了缺少事務和檢查之外,這段代碼不是「乾淨」的嗎?在哪裏放?對於管制員,我不這麼認爲。

+1

如果不是控制器?模型,無論如何你必須打電話給它 –

回答

1

何處放你的數據庫邏輯取決於你現在的系統架構。

將業務邏輯和數據庫邏輯分離到不同的層是一種很好的方法。擁有一個服務層(帶有精簡接口集合的域外觀來訪問它們)也很好,你可以在其中操作不同的域模型。所以可以決定將上面的代碼放入應用程序的服務層。

這裏是它應該如何看service layer

我可以建議你閱讀Martin Fowler的「企業應用架構模式」一個很好的解釋。

相關問題