【发布时间】:2012-05-08 21:33:16
【问题描述】:
我正在创建一个应用程序,用户可以在其中发布帖子,其他用户可以喜欢和评论这些帖子。为了实现这个功能,我使用了 POSTS、LIKES、COMMENTS 等表。(我使用 parse.com 数据库来存储这些表)。
POSTS 具有 postId、content、userWhoMadeThePost、dateOfPosting 等字段
LIKES 包含 filelds 作为 id、postOnWhichLikeWasMade(POSTS(postId) 的外键)、userWhoLiked、dateofLike
COMMENTS 有 id, content, postOnWhichCommentWasMade(POSTS(postId) 的外键), userWhoCommented, dateOfComment
我想检索最受欢迎的帖子(点赞数和 cmets 数最多的帖子)。
- 第一种方法是每次请求热门帖子时计算每个帖子的帖子数量和点赞数,但如果出现以下情况,这可能会变得非常耗时 有数百万个帖子。
- 另一种方法是在 POSTS 表中包含“noOfLikes”和“noOfComments”,因此为了获得热门帖子,我只能访问 post 表,但这种方法的问题是每当用户对帖子发表评论,然后我将不得不在 POSTS 表中增加“noOfComments”,并在 COMMENTS 表中创建一个条目,当对 POST 表成功进行增量并且在对 COMMENTS 表进行更改之前连接丢失时,问题就开始了.在这种情况下,POST 和 COMMENTS 表将显示错误的数据。
如何做到这一点?
【问题讨论】: