2015-09-04 66 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的“企业应用架构模式”一个很好的解释。