gpt4 book ai didi

android - 如何获得最受欢迎的帖子?

转载 作者:搜寻专家 更新时间:2023-10-30 23:18:07 26 4
gpt4 key购买 nike

我正在创建一个应用程序,用户可以在其中发布帖子,其他用户可以对这些帖子点赞和评论。为了实现这一功能,我使用了 POSTS、LIKES、COMMENTS 等表。(我正在使用 parse.com 数据库来存储这些表)。

POST 有 postId、content、userWhoMadeThePost、dateOfPosting 等字段

LIKES 包含 filelds 作为 id,postOnWhichLikeWasMade(POSTS(postId)的外键),userWhoLiked,dateofLike

评论有 id、内容、postOnWhichCommentWasMade(POSTS 的外键(postId))、userWhoCommented、dateOfComment

我想检索最受欢迎的帖子(没有点赞和评论的帖子)。

  1. 执行此操作的第一种方法是每次请求热门帖子时计算每个帖子的帖子数和点赞数,但如果这样,这会变得非常耗时有数百万个帖子。
  2. 另一种方法是在 POSTS 表中包含“noOfLikes”和“noOfComments”,因此为了获得热门帖子,我将不得不只访问帖子表,但这种方法的问题是每当用户对帖子发表评论然后我将不得不在 POSTS 表中增加“noOfComments”并在 COMMENTS 表中创建一个条目,当成功对 POST 表进行增量并且在更改 COMMENTS 表连接丢失之前,问题就开始了.在那种情况下,POST 和 COMMENTS 表将显示错误的数据。

如何做到这一点?

最佳答案

如果您可以控制数据库,这会很简单,但是用 Parse 来做意味着你有两个主要问题(其中一个你已经提到过):

  1. 据我所知,Parse 不允许在查询中分组。这意味着(使用您的模式)实际上不可能在不检索所有的情况下获得最喜欢/评论最多的帖子。这是因为您实际上无法像在标准 SQL 查询(使用 JOIN 和 GROUP BY)中那样动态添加包含点赞/评论数量的新列。
  2. 您不能在一次交易中更新多个对象,因此用户可能会添加评论但帖子对象中的评论数量不会改变。

话虽如此,我认为(至少如果您坚持使用解析)您必须将“noOfLikes”和“noOfComments”列添加到 Post 对象。它不仅为检索 N 个热门帖子(无需全部获取)提供了唯一可行的解​​决方案,而且在我看来,不一致的实际风险非常低。您始终可以捕获网络(或其他)异常并临时将更新请求存储在本地并稍后重试。

关于android - 如何获得最受欢迎的帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10362429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com