如何处理某些UGC对特定好友可见,及好友看到的UGC数量统计问题?

发布于 2022-08-28 13:02:08 字数 238 浏览 19 评论 0

在一个多用户系统中,用户A发布ugc时,一种是全部好友可见, 一种设置某些好友(比如B、C)可见, 某些好友不可见(比如E、F两人),那么
A可见的UGC总数是100,列表是全部UGC
B可见的UGC总数是90,列表内容是A的公开ugc和B可见UGC。
E看到的UGC总数是50,列表内容是A的公开ugc和E可见UGC。
看到的列表也是不一样的。

那么在php+mysql中,该如何处理相关的逻辑,表设计如何?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明天过后 2022-09-04 13:02:08

假设表 post 为用户发布的内容,里面有个标明类型的字段 privacy,值为

0 - 'public'(完全公开)
1 - 'protected'(指定可见)

新建一张表 noBlock,用来记录指定可见的 Post 和可见用户的关系。如:

id postId userId

假设场景为 B 登录,那么他所看的内容读取顺序即为:
1.读取所有 privacy 值为 0post 数据。
2.联合查询 postnoBlock 表,读取 noBlock 表中 userIdBid 的数据。

大概写个 mysql 的语句(举例为主,需要测试):

(select * from post where privacy = 0) 
union 
(select * from post left join noBlock on post.id = noBlock.postId where post.privacy = 1 and noBlock.userId = Bid)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文