首页 新闻 搜索 专区 学院

瀑布流 点击“推荐”的功能,数据表应该怎么设计?

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-20 13:27

瀑布流的每张图片都有一个“赞”的按钮,登录用户点击后加1,不能重复推荐。

 判断用户是否点击用户id来判断,

我现在的做法是:用户点击后 一张M表里有3个字段,

id  imgId  userId

1   2         1

2   2         3

3   3         4 

4    3         1

但感觉最近查询比较慢了,这个应该怎么做比较好呢?    

老树昏鸦的主页 老树昏鸦 | 初学一级 | 园豆:10
提问于:2013-11-01 20:13
< >
分享
最佳答案
0

我有个不成熟的想法:

用户表增加一个字段: ImgIds  varchar (存储点过赞的图片编号)

存储形式如下: 1,3,5  (图片编号用逗号分隔)

当user点击图片时,ImgIds字段后面追加图片的编号,比如点击了id为X的图片: 1,3,5,x

当判断某个图片是否点击过是,直接从ImgIds中判断这个图片编号是否存在就好了,这个时候就是检查字符串了。

 

这样做有个前提,就是,点过赞的图片不能取消赞,否则这个字段维护起来就麻烦了,就是只能赞。

同时lz设计那个表,里面还是要存储客户点击的图片记录。只不过是很少用到了,不过用来做统计时还是很有用的。

收获园豆:5
袁家小黑球 | 小虾三级 |园豆:1045 | 2013-11-04 09:35
其他回答(3)
0

设计一个数据结构,到数据加载到内存里。

angelshelter | 园豆:9678 (大侠五级) | 2013-11-01 20:31
0

楼上的说法没看懂.能详细点么

chanchaw | 园豆:65 (初学一级) | 2013-11-02 10:03
0

楼主可以使用LINQ查询,保证效率快,简单实例:

class LINQQueryExpressions
{
    static void Main()
    {

        // Specify the data source.
        int[] scores = new int[] { 97, 92, 81, 60 };

        // Define the query expression.
        IEnumerable<int> scoreQuery =
            from score in scores
            where score > 80
            select score;

        // Execute the query.
        foreach (int i in scoreQuery)
        {
            Console.Write(i + " ");
        }            
    }
}
// Output: 97 92 81
View Code
LanJerry | 园豆:168 (初学一级) | 2013-11-02 15:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册