如何为现有帖子关闭机制添加重新开放功能?
关于Stack Overflow风格帖子关闭与重开机制的优化咨询
我正在尝试实现一套类似Stack Overflow的帖子关闭与重新开放机制,目前已经完成了基础的关闭逻辑,具体实现如下:
当前已实现的关闭机制
1. 数据库表结构
我设计了close_posts表来记录关闭投票,结构如下:
// close_posts +----+---------+---------+ | id | post_id | user_id | +----+---------+---------+
2. 状态关联逻辑
在posts表中设置了tinyint类型的closed字段(默认值为0),通过数据库触发器,每当close_posts表插入一条新记录时,就自动将对应帖子的closed字段值加1。
3. 关闭判断逻辑
通过以下逻辑判断帖子是否被关闭:
if ( $post['closed'] >= 5 ){ echo "the post is closed"; }
需求与方案疑问
现在我需要给这套机制加上重新开放的功能,想请教大家以下两个方案是否可行,或者有没有更优的实现思路:
- 是否需要新建
open_posts表,同样通过触发器来减少posts表的closed字段值?不过这样的话,原来的判断逻辑(closed >=5)就会失效,因为closed可能会降到5以下。 - 是否应该修改现有的
close_posts表,新增一个字段来标识投票类型是「关闭」还是「重新开放」?这样就能在同一张表中统一管理两种投票行为。
内容的提问来源于stack exchange,提问作者stack
相关产品推荐
相关产品推荐

