Py学习  »  分享发现

有没有什么好的方法可以实现显示商品列表的时候同时标识当前用户是否曾对其点赞

amghost • 11 年前 • 4526 次点击  

数据库有3张表,商品表、用户表、商品对用户的点赞操作表(若用户A对商品X点赞,则该表会有一条记录)

目前我设计的表是这样的。

现在主要是要拿到商品表的数据项,同时,要显示当前用户是否已经对其点赞。

我想到的办法是

  1. 先获取商品列表
  2. 获取当前用户所有点赞过的商品的id
  3. 遍历当前商品列表,如果商品的id在用户的点赞商品id列表中,则增加一个字段到商品列表中中表示当前用户是否对其点赞。

由于商品是需要分页的,我使用的是django自带的分页器,这样会不会导致每次分页都必须去数据库查找当前用户所有点赞过的商品的id的列表?

感觉这个问题还是比较常见的,有没有更加有效的解决方法呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/362
 
4526 次点击  
文章 [ 2 ]  |  最新文章 11 年前
我心荡漾
Reply   •   1 楼
我心荡漾    11 年前

很明显cookies,最为方便,也有弊端,另外一种方式就是存储方式,DB,nosql等

Py站长
Reply   •   2 楼
Py站长    11 年前

如果你每次翻页都是请求后端,那查询数据库就是必须的啊。除非你在前端使用Ajax无刷页面,将这些用户点击的商品ID列表 缓存在前端,这样可以在前端就进行遍历进行判断就可以。

如果是单个用户点赞次数不多(读多写少)的话,其实你可以将用户点赞数据缓存在内存里(或者Nosql里),速度快。