使用Cakephp处理包含大量数据的多个表

时间:2013-07-11 17:58:12

标签: php mysql cakephp

HI最近我正在处理大型项目 我有5个表需要使用。 这是我的情景 我想列出帖子表中的所有帖子以及特定帖子的所有评论。每个评论都有作者,所以我也需要那些信息。 让它变得简单

发布1

- >帖子描述[从帖子表中获取]

- >有关帖子1的评论[从评论表中获取,也有post_id作为外键]

- >注释用户信息[注释表将user_id作为外键]

发布2

- >帖子描述[从帖子表中获取]

- >与帖子2相关的评论[从评论表中获取,也有post_id作为外键]

- >注释用户信息[注释表将user_id作为外键]

发布{n}

- >帖子描述[从帖子表中获取]

- >与帖子{n}相关的评论[从评论表中获取,也将post_id作为外键]

- >注释用户信息[注释表将user_id作为外键]

假设我的表中有超过10000个帖子

任何人都可以帮我解决这个问题。

另外我想从数据库层创建表视图来执行此任务

1 个答案:

答案 0 :(得分:0)

如果您正确设置了Model relations(我不会详细说明这一点,因为CakePHP书是关于此事的绝佳参考),这相对简单。

为了能够获得每个评论帖的用户数据,您还必须使用Containable。同样,我不会真正解释它的作用,因为这本书可以做得更好。

我在下面提供了一个示例查询,但请注意,它可能不是100%正确(特别是考虑到我不知道您的列的名称):

$data = $this->Post->find('all', array(
    'fields' => array('Post.description'),
    'contains' => array(
        'Comments',
        'Commenter' //Alias for the User Model
    )  
    )); 

只是对上述评论的解释:这假定为Comment hasOne Commenter => array('className' => 'User')