基于标签实现文章权限的思路,求大牛帮助

浏览:514 发布日期:2015/08/03 分类:求助交流
思路是这样的:
通过用户对于某标签是否有阅读权限,从而实现只展示用户有权限阅读的标签的文章。
1.获得用户信息(UID = 2)
2.获得UID可以阅读的Tag列(这里面我考虑借鉴Thinkphp auth类)[1,2,3,4,5]
.......
然后思路断了,因为我希望实现的是严格的`与式`关系,而非`或式`
如果用`或式`,大致思路还可以往下面走
.........
通过Tag列去获得文章内容,如:        $rule = array(1,3,4); //假定可以获得的标签权限为
        // $where = array('tag_id'=>array('in',$rule));
        $where = array('article_tag.tag_id'=>I('id',0)); //实际上,微量数据数据可以用in,大量数据不能
        $data = M('article_tag')
            ->field('article_tag.article_id,article.id,article.title')
            //->distinct(true)
            ->join('Article ON article.id = article_tag.article_id')
            // ->join('tag ON tag.id = article_tag.tag_id')
            ->limit(1000)
            ->where($where)
            ->select();
        dump($data);
然后如果用`与式`的权限机制,文章A有 1,2,3 标签,文章B有 1,2,6标签,文章C有 1,3标签,文章D有 4,6标签,UID = 2的只有阅读[1,2,3,4,5]标签列的权限,
我在获得文章列的时候,没有任何办法高效的获得文章A、C的数据。
笨办法是把文章都取下来,然后把文章的标签也取下来,再然后把文章的标签与权限标签进行匹配,取出有标签的文章标签。这种办法可以理解为后期过滤,然而这种做法并不优秀。

我需要这些算法(非取出数据用程序过滤):
1.获得阅读[1,2,3,4,5]标签列的权限的所有文章数据列,其中文章所有标签都有阅读权
2.全文搜索获得有权限的文章的数据列(您不需要提供中文分词技术,实现英文版全文搜索即可)
求支招。
您可以私信联系我,嗯,带上您需要多少报酬。
最佳答案
评论( 相关
后面还有条评论,点击查看>>