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

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

WBOY
Release: 2016-06-06 20:45:51
Original
1013 people have browsed it

在一个多用户系统中,用户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中,该如何处理相关的逻辑,表设计如何?

回复内容:

在一个多用户系统中,用户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中,该如何处理相关的逻辑,表设计如何?

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

<code>0 - 'public'(完全公开)
1 - 'protected'(指定可见)
</code>
Copy after login

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

<code>id postId userId
</code>
Copy after login

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

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

<code>(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)
</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template