从性能考虑怎样设计在查看用户在一个内容列表的关联状态?

2017-03-22 10:29:35 +08:00
 kenshinhu

现在有一个用户收藏内容埸景,其设计如下

有三个数据 User (用户表), UserFavor (用户收藏表), Post (发布内容表)

UserFavor 是关联 User (用户表)和 Post (发布内容表),对应关系是 M:N

现有一个接口 GET:/post?limit=n(n>10) 要从 Post (发布内容表)查看 n 条记录的内容

这个可以传入用户的 ID 来查看 用户是否有收藏发布的内容如: GET:/post?limit=n&uid=User.id

这个接口里会返回 isFavor 状态来标识用户是否已收藏内容

问题来了

如果代码上实现的话就是先从 Post 取得 n 条数据 之后再遍历里面的 id 再查 UserFavor 来匹配用户的收藏

那数据请求就是 1+n 次

那在什么方案可以减少这个请求次数 但又不减 收藏的标识 实时性呢?

1337 次点击
所在节点    问与答
1 条回复
sorra
2017-03-22 11:03:52 +08:00
Post join UserFavor on Post.id = UserFavor.postId where Post.uid = ? limit n

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX