2011-11-27 61 views
0

我正在使用MySQL为我的用户添加“喜欢”我网站(Wordpress)内容的能力。我已经通过创建自己的表,然后为每个类似于内容ID和用户ID的记录添加了一个插件。Mysql效率场景

为每个用户关联的所有喜欢的内容ID添加一列到用户表中,并为每个喜欢每段内容的每个用户ID添加一列到内容表中是否更高效?我会根据是显示用户的收藏夹列表或一段内容的喜欢数量来进行不同的查询。

我是新来的MySQL所以任何建议,将不胜感激:)

回答

3

难道是更有效的一列,而不是添加到用户表的所有内容喜欢的ID与每个用户相关联,并为内容表中的每个用户ID添加一列,这些用户ID喜欢每段内容?

恐怕没有,
你可以有一个职位有很多用户喜欢,
或用户已经喜欢过很多帖子,
你可能会超过列长度很快

最常见的做法使用单独的表来存储的关系: -

user_id, post_id, add_date 

生成两个索引(USER_ID,add_date)和(POST_ID,add_date)。
通过简单的指标,
你可以得到的职位清单按add_date递减喜欢的用户为了容易,
或反之亦然,让用户的列表中add_date递减

喜欢上了一个职务序列如果你想列出最喜欢的帖子,那么可以考虑(post_id,user_id)上的索引

+0

完美的,谢谢你的彻底答案! – jetlej