php - 用户评论的时候添加楼层数,同时评论时就重复了怎么处理?
PHPz
PHPz 2017-04-11 10:00:23
[PHP讨论组]

用YII框架开发的一个企业号,一条新闻里面,用户评论时给这条评论增加一个楼层来显示。
楼层数是存放在评论表里面的。
这种并发应该怎么处理?

PHPz
PHPz

学习是最好的投资!

全部回复(4)
巴扎黑

不要分配楼层序数,楼层序数是根据取出的结果在输出的时候才计算的

PHP中文网

对当前用户来说,可能自己的评价就是显示在它能看到的下一个楼层,但是对数据来说,不管是不是并发,总是有先后顺序的,总能安装一种规则排出顺序来,在当前用户刷新了页面后他才能确定自己真实的楼层,就跟抢楼一样。

迷茫

评论表设置一个自增id,程序插入数据的时候,不声明楼层数,插入数据后,假如获取返回的自增id为100,查询当前新闻id下,自增id小于等于100的记录数,即为当前评论的楼层数,再更新到评论表里。

天蓬老师

我猜的话楼主你每次写入表之前都会取一下当前的最大楼层,然后有个+1的处理,再插入。这样并发情况下,确实会出问题。小弟愚见,有两套方案:

  1. 用PHP文件锁,保证并发插入楼层不会错乱。

  2. redis做队列。最大楼层可以用一个单独的key=>value保存,更新速度肯定快。然后再用list做个队列,保证并发下,不存在评论重复的情况。

楼主可以自己试试,我的回答有问题的话还望大神指点指点。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号