我有一个共同的疑问。
猜猜我正在创建一个包含帖子的社交网络或博客,每个帖子都有评论。
如果我想分页并过滤帖子列表并显示每篇帖子的评论数量
我应该在我的帖子表中添加count_comments列(就像WP一样)并在那里缓存注释量(例如,如果有人将注释sub 1删除到count_comments列,则每次有人注释添加1)
我是否应该执行SUBSELECT以每次计算注释量,然后使用其他表单缓存结果或缓存
或者你推荐什么?
答案 0 :(得分:0)
绝对使用触发器缓存它们,对未来安全且高效。但请记住,你不需要计数分页,也许只是为了显示一些统计数据
答案 1 :(得分:0)
简而言之:两者都有效,两种变体都有其优点和缺点。
你几乎肯定会有两种方式的论据。
如果您经常需要注释计数,并且需要很多系统/应用程序资源来使用简单的sql语句获取该值(通过该值排序可能会很麻烦),将值存储在像WordPress这样的字段中是一种方法。
如果您不经常需要评论计数,和/或它不需要很多资源来获取值(SELECT COUNT(*) FROM yourcommenttable WHERE yourpostid = whatever
对于大多数系统来说不应该太难),您可能会受益更多,同时避免问题使价值与帖子中的实际评论保持同步。