我正在尝试为网站的现有评论部分创建类似于 Facebook 的 Like/Unlike 系统,我需要帮助设计系统。
目前,网站上的每个产品都有评论区,会员可以发表评论和点赞。我需要知道每个成员发表了多少评论,他的每条评论获得了多少赞。当然,出于分析目的,我还需要知道谁也喜欢哪些评论(部分原因是为了防止用户多次喜欢评论)。
对当前评论模块实现 Like 系统的简单方法是在数据库中创建一个新表,该表具有 CommentID 和 UserID 的外键。然后,对于用户给评论的每一个“赞”,我都会在这个新表中插入一行,其中包含目标评论 ID 和用户 ID。
虽然这可能会奏效,但大量的评论和用户将导致该表快速增长,从这个巨大的表中检索记录和进行计数将变得缓慢且效率低下。我可以索引任一列,但我不知道它的效果如何。该网站有超过一百万条评论。
我正在使用 PHP 和 MySQL。对于这样一个拥有庞大数据库的系统,我应该如何设计一个 Like 系统,使其更加优化和稳定?