请问 block 用户的功能是怎么实现的呢?

2015-03-02 00:03:31 +08:00
 binarymann
要怎么实现才不会对数据库的读写不造成很大的压力呢?
3299 次点击
所在节点    问与答
14 条回复
kslr
2015-03-02 00:13:38 +08:00
我猜v2是redis存储然后if xx in xx
9hills
2015-03-02 01:28:27 +08:00
@kslr 最早的实现是在前端屏蔽,所以数据库层没有任何压力。但是屏蔽列表是存在redis的。。

现在不知道,以前好像有相关主题
typcn
2015-03-02 02:34:15 +08:00
压力最轻的是在客户端屏蔽

每个人的回复都加上一个指定的 class

用户屏蔽了谁,就给他输出

.user-xxx{ display:none }
cevincheung
2015-03-02 04:47:24 +08:00
pgsql:

select * from posts where node_id = ? and author_id not in (select blockd_user_id from blocks where user_id = ?)

效率还不错

Ps.: 感觉这样好扯淡
Jat001
2015-03-02 05:17:50 +08:00
有啥压力,被当前用户 block 的用户 id 完全可以序列化后存到一个字段里,在输出帖子和回复的循环里判断下,uid 在这个列表里就 continue。
NeoAtlantis
2015-03-02 05:41:50 +08:00
我对在客户端屏蔽有个疑问:如果这样,分页还能否保证每页具有足够的帖子?比如首页开始是显示20个帖子,这样屏蔽掉就不够数了啊。
evlos
2015-03-02 05:50:45 +08:00
@NeoAtlantis +1 最纠结的就是这个问题了
emric
2015-03-02 06:00:12 +08:00
我这种后台渣的表示关注.
panxianhai
2015-03-02 07:12:52 +08:00
@NeoAtlantis 目前v2每页帖子也是不一致的。
NeoAtlantis
2015-03-02 07:54:04 +08:00
@panxianhai 合着是只要不被人发现就行了么……
typcn
2015-03-02 08:10:51 +08:00
@NeoAtlantis 这个都无所谓的,你看贴吧那鸡肋屏蔽,楼层号都不连续了
SuujonH
2015-03-02 10:15:23 +08:00
@NeoAtlantis 加个判定已输出显示的个数就好了吧

@typcn 我觉得贴吧是故意的的,不然都不知道被屏蔽了,看着完全跑题的语句,至少知道有帖子被屏蔽了...
NeoAtlantis
2015-03-02 11:14:20 +08:00
@SuujonH
@typcn

这样更有问题了,如果不补上后续的贴子,贴吧那种有的神贴一删几十几百楼的怎么办?不能翻页时翻出来好几页没有楼啊。。。
evlos
2015-03-02 17:22:39 +08:00
@NeoAtlantis 删帖和屏蔽用户的情况完全不一样哦,是不是不小心搞混了?

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

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

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

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

© 2021 V2EX