更好的方法来检索记录计数

时间:2014-11-27 05:24:16

标签: mysql database-design

我正在处理一个小型网站,该网站有标签来识别该主题的类型。每个标签都有类似SO的粉丝。输入标签时,将填充建议,其中显示自动完成的标签及其关注者。

为这些标记设计表格的最佳方法是什么,以便简化检索跟随者计数以及管理标记。

1. 'tags'(
   id INT,
   tagname STRING)

   tag_followers(  
   tag_id INT,
   userid INT)

FollowersCount查询:

 SELECT COUNT(*) FROM tag_followers WHERE tag_id = (SELECT id FROM tags WHERE tagname = "Games")

.......

2. 'tags'(
   id INT,
   tagname STRING,
   follower_count INT)

   tag_followers(  
   tag_id INT,
   userid INT) 

FollowersCount查询:

SELECT  follower_count FROM tags WHERE tagname = "Games"

我有这两个想法。但是我无法判断哪些可以帮助我从长远来看快速检索。请帮我选择。另外,如果有比上面两个更好的方法,请建议我。提前致谢。

1 个答案:

答案 0 :(得分:0)

我建议你的第一种方法,查询应该是:

  

SELECT COUNT(1)FROM tag_followers TF JOIN标签T on TF.tag_id = T.id and   tagname =“游戏”

如果您只需要计数,那么不要使用count(*),只需使用count(1)。因为count(*)将考虑所有列,而count(1)在计算计数时将仅考虑一列(第一列)。

第二种方法所需的步骤:

  1. 首先,您需要从标签表中选择follower_count
  2. 然后你需要增加它并更新标签表然后你需要
  3. 插入tag_followers表。
  4. 但在第一种方法中,只需要第3步。