首页
学习
活动
专区
圈层
工具
发布

每个帖子的评论数

每行可以是一个帖子或对该帖子的评论。 如果是帖子的话,parent_id 就是 null。 对于评论来说,parent_id 就是表中对应帖子的 sub_id。...编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。...Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。...表中 ID 为 3 的评论重复出现了,所以我们只对它进行了一次计数。 表中 ID 为 2 的帖子有 ID 为 5 和 10 的两个评论。 ID 为 12 的帖子在表中没有评论。...表中 ID 为 6 的评论是对 ID 为 7 的已删除帖子的评论,因此我们将其忽略。

88500

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 21丨每个帖子的评论数【难度中等】​

每行可以是一个帖子或对该帖子的评论。 如果是帖子的话,parent_id 就是 null。 对于评论来说,parent_id 就是表中对应帖子的 sub_id。...编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。...Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。...表中 ID 为 3 的评论重复出现了,所以我们只对它进行了一次计数。 表中 ID 为 2 的帖子有 ID 为 5 和 10 的两个评论。 ID 为 12 的帖子在表中没有评论。...表中 ID 为 6 的评论是对 ID 为 7 的已删除帖子的评论,因此我们将其忽略。

58520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    评论区功能的具体实现思路

    user_id:发表评论的用户 ID,外键关联到 users 表。 post_id:评论所属帖子的 ID,如果你的项目中有帖子的概念。 creation_time:评论创建时间。...根据这些信息,在 comments 表中创建一个新条目。 检索评论 为了展示评论和它们的回复,你可以采用递归查询或者在应用层处理嵌套。...一种方法是,在检索帖子的评论时,首先获取所有一级评论(parent_id 为 NULL 或 0),然后对每个一级评论,检索其子评论。...另一种方式是使用数据库的递归查询功能(如果支持,如 MySQL8.0 版本),一次性检索所有相关评论,并在应用层组织它们的层级结构。...通知机制 当用户对某个帖子或评论进行评论时,应该通知原帖子的发布者和被回复的评论者。

    74810

    如何使用 Python 抓取 Reddit网站的数据?

    有 2 种类型的 praw 实例:   只读实例:使用只读实例,我们只能抓取 Reddit 上公开的信息。例如,从特定的 Reddit 子版块中检索排名前 5 的帖子。...在本教程中,我们将仅使用只读实例。 抓取 Reddit 子 Reddit 从 Reddit 子版块中提取数据的方法有多种。Reddit 子版块中的帖子按热门、新、热门、争议等排序。..."].append(post.title) # 职位内的文本 posts_dict["Post Text"].append(post.selftext) # 每个帖子的唯一 ID posts_dict...我们需要 praw 模块中的 MoreComments 对象。为了提取评论,我们将在提交对象上使用 for 循环。所有评论都会添加到 post_comments 列表中。...我们还将在 for 循环中添加一个 if 语句来检查任何评论是否具有 more comments 的对象类型。如果是这样,则意味着我们的帖子有更多可用评论。因此,我们也将这些评论添加到我们的列表中。

    4.3K20

    如何提高数据库性能的系统设计方案

    在你向下滚动之前,想一想你会怎么回答,如果你发现我的文章中没有包括这个问题,请在评论中告诉我。 ◆  可能的答案 请记住,每个答案都是有取舍的。根据不同的情况和问题陈述,有些答案可能不相关。...例如,当用户添加评论时,你会希望该评论是即时可见的,因为这被用作不同用户之间快速沟通的形式。然而,也许对于上调或下调,你可以不同步更新数据库,而是将上调/下调添加到一个队列中,以便以后处理。...从内存中检索数据比从磁盘中检索数据要快得多,所以这些数据库的数据检索速度明显要快。Redis就是一个很好的例子。...简而言之,这就是我们数据的使用情况。 95%的请求是针对同样的前10%的帖子。事实上,50%以上的请求是针对前1%的帖子。 我在我的文章中更深入地谈到了这个问题。...我们可以有一个简单的架构,最初我们将帖子存储到Redis和Postgres,并每12小时运行一个cron工作,简单地将超过一天的帖子转移到Postgres。

    72610

    WordPress的数据库介绍

    WordPresss数据库是存储所有网站数据的地方。不仅仅是用户名和密码等基本信息,还包括帖子,页面和评论,甚至是网站主题和WordPress配置等设置。...MySQL是开源软件,它负责管理WordPress数据库的组件,如用户数据,用户元,帖子,评论等。...您的wordpress数据库由数据库主机安排,然后将其放在Mysql服务器上,将数据库主机视为可以使用特定地址(主机名)访问。您可以从数据库名称中检索某些内容。...WordPress 版本将生成以下核心数据库表: wp commentmeta - 每个评论都有称为元数据的唯一信息,这些数据将在本节中提供。...wp termmeta - 每个术语都有称为元数据的唯一信息,这些数据将在本节中提供。 wp terms - 帖子和链接的类别以及帖子的标签都存储在此处。

    3.1K20

    JPA与Hibernate区别 - JPQL查询优化,结合实际项目中的应用

    JPQL允许开发者通过查询语句检索持久化对象,而不必直接操作数据库。虽然JPQL语法与SQL相似,但它更加抽象和面向对象。...以下是一个简单的JPQL查询示例,用于检索所有年龄在18到30之间的用户: javaCopy code String jpql = "SELECT u FROM User u WHERE u.age BETWEEN...实际项目中的应用 场景描述 考虑一个社交媒体应用,用户可以发表帖子,每个帖子可以有多个评论。当用户查看帖子详情时,可能会频繁访问相同的帖子及其评论。...假设我们需要查询帖子及其评论,以下是一个使用JOIN FETCH的JPQL查询示例: String jpql = "SELECT p FROM Post p JOIN FETCH p.comments...; query.setParameter("postId", postId); Post post = query.getSingleResult(); 通过使用JOIN FETCH,我们一次性获取了帖子和关联的评论

    72910

    系统设计:Facebook的新闻流设计

    存储估计: 平均而言,假设每个用户的提要中需要大约500篇文章,我们想保留在内存中以便快速获取。我们还假设平均每个帖子大小为1KB。这意味着我们需要为每个用户存储大约500KB的数据。...count (number):可选;指定要尝试和检索的提要项的数量,最多为每个不同的请求200个。 max_id (number):可选;返回ID小于(即早于)或等于指定ID。...因此,每当我们的系统收到为用户生成提要的请求时(说Jane),我们将执行以下步骤: 1.检索Jane跟踪的所有用户和实体的ID。 2.检索这些ID的最新、最流行和相关帖子。...a、 生产帖子 让我们举一个简单的例子,newsfeed生成服务从所有站点获取最新的帖子 Jane关注的用户和实体;查询如下所示: (SELECT FeedItemID FROM FeedItem WHERE...喜欢的数量、评论、共享、更新时间、帖子是否有图像/视频等,以及 然后,可以使用这些特征计算分数。

    6.9K283

    跟我一起学Laravel-EloquentORM进阶部分

    ,假设这样一个场景,我们有一个帖子表和一个评论表,用户既可以对帖子执行喜欢操作,也可以对评论执行喜欢操作,这样的情况下该怎么处理呢?...= App\Like::find(1); $likeable = $like->likeable; 上面的例子中,返回的likeable会根据该记录的类型返回帖子或者评论。...查询关系存在性 使用has方法可以基于关系的存在性返回结果 // 检索至少有一个评论的所有帖子......// 检索所有至少存在一个匹配foo%的评论的帖子 $posts = Post::whereHas('comments', function ($query) { $query->where('...更新父模型的时间戳 假设场景如下,我们为一个帖子增加了一个新的评论,我们希望这个时候帖子的更新时间会相应的改变,这种行为在Eloquent中是非常容易实现的。

    4.5K50

    浅析数据储存产品中的数据一致性解决方案

    「数据的完整性、一致性和服务的稳定性,是数据存储类产品所需要特别关心的点。」 目前在做的广告检索系统,涉及到了广告信息存储,底层采用的是自研的类ES的存储引擎。...因为全量索引的创建和更新一般都非常耗时,所以,增量更新是满足日常业务检索诉求必不可少的一环,具体是怎么实现的呢,如下图: ?...而数据来源,是一个flow表,也可以叫做操作流水表,此表中的内容不会存储每个广告帖子的具体信息,只会记录某个帖子进行了操作这个简单的信息,是一个无状态的表。...所以,会实时的反查各个数据源,拿到帖子的最新信息,完成帖子索引的构建,保证相关数据最新。 「看到这个设计,是不是有种似曾相识的感觉。...我们这边的ES的实现策略,其实可以看成是aof或者redo log 的每个处理模块放大到了系统层面的表现。 或许在遇到类似问题的候,可以做个参考。 真是应了那句话,天下文章一大抄,看你会抄不会抄?

    54910

    从30秒到30毫秒:EF Core查询性能优化实战全记录

    ; } 实体关系如下: • 用户:每个用户有多篇帖子和多条评论 • 评论:每条评论属于一个用户并关联一篇帖子 • 分类:帖子按分类组织 • 帖子:每篇帖子有一个分类并可获得多个赞 • 点赞:每个赞关联一篇帖子...在PostgreSQL中此查询耗时29-30秒。 优化1:预筛选用户 我们加载了所有用户及其评论,包括那些没有在".NET"分类下评论过的用户。...循环中执行两个小查询: • 获取他们评论过的前3篇热门帖子 • 获取这些帖子上的最新2条评论 public List GetTopCommenters_Optimization4...获取前5名用户及其评论数和热门帖子 2. 获取这些用户按点赞数排序的热门帖子 3....获取每位用户在其热门帖子上的最新评论 public List GetTopCommenters_Optimization7_ThreePhaseOptimized() {

    25210

    腾讯频道Feed流系统架构设计

    既然是以帖子为内容载体,那帖子系统如何实现则是频道的架构设计中重要的一环。...子频道帖子列表:单频道内单个子频道的帖子列表,包括按照发表时间&互动时间两条内容流。 帖子广场:单频道内所有子频道的帖子聚合列表,同样包括最新发表,最新回复两条流。...其他我发表的、我点赞的、我浏览的帖子列表则是字面意思,不一一展开介绍。 除此之外还有帖子的评论列表,评论的回复列表,个人的互动消息列表等等也不一一展开。...假定单页数量为10,平均每个频道子频道数为10,平均每个用户加入5个频道,那么我们需要查询这么多帖子,才能得到我们想要的帖子: 第一页:10*1*10*5=500 第二页:10*2*10*5=1000...透传 Cookie:每次返回了一页内容之后,将每个子频道次新发表时间统一缓存在透传 cookie 中,可以在客户端翻页的时候,扩散量不会随着页数膨胀,同时还可以减少非第一页对最新发表时间的查询。

    41510

    enable参数在 Postgres 18 中的工作方式将有所不同

    "enable"参数在 Postgres 18 中的工作方式将有所不同 每年我都会在即将推出的PostgreSQL主要版本中浏览对EXPLAIN的更改和添加,以了解我们需要在pgMustard中添加哪些支持...PostgreSQL 18 中有很多与 EXPLAIN 相关的改进!我要研究的清单上最新的一个是改变了规划者对"enable"参数的响应方式(并传达其效果)。我觉得挺有意思的,所以想分享一下。...在这种情况下,当前会在此类作中添加 1^10(100 亿)的巨大"disable_cost",因此 Postgres 的基于成本的优化器极不可能选择这样的计划,除非它没有其他选择。...启用参数在 18 中的工作原理 这个帖子非常长,但如果你想观察一些非常聪明的人讨论一个棘手的问题,并在经过很多来回之后得出一个非常合理和简单的实现,那么非常值得一试。...简而言之,Postgres 将不再向任何禁用的节点添加"disable_cost",而是为每个路径保留禁用节点的计数。它将选择禁用节点最少的路径,然后选择成本最低的路径——多么优雅。

    16410

    1万属性,100亿数据,每秒10万吞吐,架构如何设计?

    (4)按照时间来查询怎么办(最新发布的帖子)? (5)跨品类查询怎么办(例如首页搜索框)?...第二:统一类目属性服务 每个业务有多少属性,这些属性是什么含义,值的约束等,耦合到帖子服务里显然是不合理的,那怎么办呢?...描述,key扩展,value校验,品类层级的问题,还有这样的一个问题没有解决:每个品类下帖子的属性各不相同,查询需求各不相同,如何解决100亿数据量,1万属性的检索与联合检索需求呢?...“帖子id”的个性化检索需求,统一走外置索引; 元数据与索引数据的操作遵循: (1)对帖子进行tid正排查询,直接访问帖子服务; (2)对帖子进行修改,帖子服务通知检索服务,同时对索引进行修改; (3...; (2)统一的结果聚合层,其无状态性也能够保证增加机器就能扩充系统性能; (3)搜索内核检索层,服务和索引数据部署在同一台机器上,服务启动时可以加载索引数据到内存,请求访问时从内存中load数据,访问速度很快

    2K20

    1万属性,100亿数据,每秒10万吞吐,架构如何设计?

    (4)按照时间来查询怎么办(最新发布的帖子)? (5)跨品类查询怎么办(例如首页搜索框)?...第二:统一类目属性服务 每个业务有多少属性,这些属性是什么含义,值的约束等,耦合到帖子服务里显然是不合理的,那怎么办呢?...,key扩展,value校验,品类层级的问题,还有这样的一个问题没有解决:每个品类下帖子的属性各不相同,查询需求各不相同,如何解决100亿数据量,1万属性的检索与联合检索需求呢?...“帖子id”的个性化检索需求,统一走外置索引; 元数据与索引数据的操作遵循: (1)对帖子进行tid正排查询,直接访问帖子服务; (2)对帖子进行修改,帖子服务通知检索服务,同时对索引进行修改; (3...; (2)统一的结果聚合层,其无状态性也能够保证增加机器就能扩充系统性能; (3)搜索内核检索层,服务和索引数据部署在同一台机器上,服务启动时可以加载索引数据到内存,请求访问时从内存中load数据,访问速度很快

    1.1K20

    大厂案例 - 海量分类业务设计的一些思考

    各分类帖子的信息特点 (1)各品类的属性千差万别,招聘帖子和二手帖子属性完全不同,二手手机和二手家电的属性又完全不同,不同的属性很多; (2)帖子的数据量巨大 (3)每个属性上都有查询需求,各组合属性上都可能有组合查询需求...(3)按照uid来查询怎么办(查询自己发布的所有帖子)? (4)按照时间来查询怎么办(最新发布的帖子)? (5)跨品类查询怎么办(例如首页搜索框)?...---- 统一类目属性服务 每个业务有多少属性,这些属性是什么含义,值的约束等,耦合到帖子服务里显然是不合理的,那怎么办呢?...描述,key扩展,value校验,品类层级的问题,还有这样的一个问题没有解决:每个品类下帖子的属性各不相同,查询需求各不相同,如何解决100亿数据量,1万属性的检索与联合检索需求呢?...所有非“帖子id”的个性化检索需求,统一走外置索引; 元数据与索引数据的操作遵循: (1)对帖子进行tid正排查询,直接访问帖子服务; (2)对帖子进行修改,帖子服务通知检索服务,同时对索引进行修改

    28220

    【转】系统设计-第11章:设计一个信息推送系统

    如果我们将整个用户和帖子对象存储在缓存中,内存消耗会变得非常大。 因此,仅存储 ID。 为了保持较小的内存大小,我们设置了一个可配置的限制。 用户滚动浏览信息流中数千个帖子的机会很小。...大多数用户只对最新的内容感兴趣,所以缓存未命中率低。将 存储在信息流缓存中。 图 11-6 显示了缓存中信息流的示例。...信息源检索深入研究图 11-7 说明了信息检索的详细设计。如图11-7所示,媒体内容(图片、视频等)存储在CDN中,便于快速检索。 让我们看看客户端如何检索信息流。...News Feed:它存储了信息的ID。Content:它存储每个帖子的数据。受欢迎的内容被存储在热缓存中。Social Graph:它存储用户关系数据。...我们的设计包含两个流程:信息发布和信息检索。与任何系统设计面试问题一样,没有完美的系统设计方法。 每个公司都有其独特的限制,您必须设计一个系统来适应这些限制。 了解您的设计和技术选择的权衡很重要。

    63910

    简易评论系统设计

    当Cache Miss时,处理用户的读请求,从MySQL中读取数据,更新缓存,并返回给用户。 Comment-Admin: 评论的管理服务,(置顶、删除、检索等)。...所评论的帖子ID,外键,引用Post表的post_idparent_comment_idBIGINT父评论ID,如果是一级评论,此字段为NULLreply_to_comment_idBIGINT被回复的评论...性能设计缓存设计热门数据缓存:对于访问频率高的数据,如热门帖子的评论,可以将其缓存到内存中,如使用Redis等内存数据库。当用户请求这些数据时,可以直接从缓存中获取,而不需要查询数据库。...分页缓存:对于评论列表的分页查询,可以将每页的数据缓存到内存中。当用户请求某一页的数据时,可以直接从缓存中获取,而不需要查询数据库。...评论通常不会脱离帖子本身存在,因此评论表可以根据post_id哈希值将数据分布到多个表中。读写分离:将读操作和写操作分发到不同的数据库服务器上。

    81510
    领券