我们的数据有以下关系:
用户
页
帖子
标签
这是我们的问题: 有没有办法只计算有多少唯一用户创建了一个已使用给定标记标记的页面或帖子?
在我们的代码模型中:
function getSupportingUserCount($tag_id)
{
$user_count = $this->find(?);
return $user_count;
}
答案 0 :(得分:1)
如果你有很多行,你可以避免可能会很慢的连接。首先获取tagid,然后通过User模型关联搜索该id。
$tag = $this->Tag->find('first', array('conditions' => array('Tag.name' => 'blahblah'), 'recursive' => -1);
$tag_id = $tag['Tag']['id'];
$this->User->find('count', array('conditions' => "OR" => array (
array('Page.tag_id' => $tag_id,
'Post.tag_id' => $tag_id )
));
(未经测试的代码,因此可能存在拼写错误)
(旁白:你确定每个帖子都有很多用户吗?通常帖子只有1位作者)