社区禁言功能如何设计比较好呢?

2022-06-06 10:07:00 +08:00
 zzztongxue
目前有两种想法:

1.在 users 表里新增禁言字段,每次发帖从数据库 users 表检测是否禁言。

2.新建一张惩罚表,记录对用户的惩罚记录,每次发帖 or 发评论检测一下该表。

第一种方法不能自动取消禁言。第二种方法后台管理员禁言比较麻烦,需要新增一条记录,不能一键禁言。

有点纠结,是否还有其他更好的方案?求解
2464 次点击
所在节点    问与答
31 条回复
WenJimmy
2022-06-06 10:13:13 +08:00
发言技能冷却时间?
zzztongxue
2022-06-06 10:16:21 +08:00
@WenJimmy 如何实现冷却😂
hingle
2022-06-06 10:24:56 +08:00
把 1 禁言字段改成禁言过期时间
liuxey
2022-06-06 10:28:41 +08:00
干脆 Redis 里存一下 userId 的禁言状态,时间到了 key 自动过期,都不用维护过期了
zzztongxue
2022-06-06 10:33:56 +08:00
@liuxey 有永久封禁的用户,这种方式感觉不适合做持久化
codergrowing
2022-06-06 10:35:23 +08:00
一键禁言是什么场景?批量禁言所选用户吗?如果是这样的话,方案二也可以实现啊,插入多条记录而已。
如果是将所有用户都禁言,方案一、二都不行吧,方案一岂不是得将表里所有行都更新一下
cmdOptionKana
2022-06-06 10:38:07 +08:00
其实一般论坛发言频率很低,直接增加个字段每次查表就行。等到论坛很兴旺的时候再看怎么改一下与 Redis 配合也不迟。
delectate
2022-06-06 11:07:12 +08:00
为了应对国内特殊情况,我觉得 user 表应该增加五各字段,分别是:
1 、禁言等级:禁言分不同等级的,比如仅禁止发言可浏览;禁止发言禁止浏览;删除账号;保留账号(类似 b 站的纪念账号)
2 、解禁时间:最短 1 秒,最长 2099 年,相当于永久了;
3 、解禁后的禁言等级:理论上来说,不能接近之后直接可以恢复自由身,要有一个改造过程(参考辛巴限流)
4 、解禁后是否需要管理员二次确认的 Boolean:(需要管理员二次确认这个人是否可以放出来,比如李佳琦、薇娅)
5 、封禁原因(含封禁原因、管理员操作历史等)
delectate
2022-06-06 11:08:20 +08:00
补充:
每次展示帖子的时候,如果查到仍在禁言期,则用户的发言“假删除”,不可以真的删掉,不然 guo 安 wang 安找你来调数据,你说删了,你就替他去 jail 了。
pengtdyd
2022-06-06 11:15:37 +08:00
我想到一个比较骚的产品套路,当帖子不符合规范的时候,别人看不到,只有发帖者自己可以看到,这样让发帖者以为发成功了,其实只有他自己能看,其他人看不了,这样用户体验非常好。
gbqqaybc
2022-06-06 11:18:37 +08:00
@pengtdyd 这就是 shadowban 吧
zzztongxue
2022-06-06 11:21:37 +08:00
@pengtdyd 哈哈哈,这个功能已经做了,帖子设置个仅作者自己可见状态即可。
ChoateYao
2022-06-06 11:23:29 +08:00
@zzztongxue 但是不感觉这玩意对分页很恶心嘛。
zzztongxue
2022-06-06 11:45:29 +08:00
@delectate 这个思路和方法二差不多,这些字段可以放在惩罚表里。
zzztongxue
2022-06-06 11:46:23 +08:00
@ChoateYao 如果是惩罚表的话,分页不好处理嘛?没 get 到你的意思
zzztongxue
2022-06-06 11:46:59 +08:00
@codergrowing 当前业务场景没有涉及到批量禁言的
estk
2022-06-06 13:19:11 +08:00
如果是我,就悄无声息让用户无感,可以发帖回帖,但是只有他自己能看到
murmur
2022-06-06 13:24:16 +08:00
@pengtdyd 这不就是新浪微博么,被封号了还可以登录,但是不能申诉,一跳转申诉就提示未登录,然后也不能注销,因为注销和申诉是一套系统
BeautifulSoap
2022-06-06 13:42:54 +08:00
user 表再加个禁言时间字段啊。用户登录或发言的时候如果过了字段就更新下禁言 flag 不就可以了
cxe2v
2022-06-06 13:53:46 +08:00
@pengtdyd #10
@estk #17 抖音就是这么干的

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

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

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

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

© 2021 V2EX