我有一个人们发布评论,图片和其他内容的网站。我想添加一个用户可以喜欢的功能/不同于这些项目。
我使用数据库存储所有内容。
我正在研究一些方法:
方法1:
优点:易于实施,需要最少的查询。 缺点:每次更改时都需要刷新项目。我有一个缓存的项目列表,它将会中断。
方法2:
优点:主项目表上的负载较少,可以缓存而不用担心。 缺点:memcache上的点击次数过多(页面显示需要从memcache加载的20个项目),可能会很慢
有什么建议吗?
答案 0 :(得分:3)
只是一个疯狂的想法:为什么不使用Facebook的like
按钮?然后,您不仅可以免费获得该功能,而且还可以通过Facebook墙上的帖子大量增加您网站的流量:“此人喜欢这个网站”。
答案 1 :(得分:1)
在用户和项目之间执行多对多映射的一个关系表应该可以解决问题。
答案 2 :(得分:1)
您实际上只需要user_likes表。 like_count是从该表计算的。如果你需要获得性能,你只需要存储它,但是因为你正在使用memcached,所以最好不要将聚合值存储在数据库中,而是将它存储在memcached中。