php - 一个用户在不同表里都有记录,怎么删除比较好?
阿神
阿神 2017-04-10 16:18:42
[PHP讨论组]

目前后台有一个删除用户的功能,但是由于功能模块很多,需要清理用户在多张表下的记录。

            //清除该用户的所有发布的文章以及文章关联的标签

            //清除该用户的所有关注的标签
            
            //清除该用户的所有问题
            
            //清除该用户的所有回答
            
            //清除该用户的所有积分
            
            //清除该用户的所有评论

            //清除该用户的所有收藏

            //清除该用户的所有问题关注

            //清除该用户的所有私信

            //清除该用户的所有消息通知

            //清除该用户的所有草稿

            //清除赠送给用户的所有邀请码

            //清除该用户所有的邀请回答

            //清除该用户的好友关系

            //清空用户统计表

            //清除用户的报名记录
            ....
            
            

大家一般如何处理,是确实清除这些相关信息么。还是对删除的用户信息进行保留,只是用标识不做查询??

阿神
阿神

闭关修行中......

全部回复(8)
PHP中文网

首先,如上面各位所说,尽量不要删除重要数据。
其次,如果你确实需要实现主表删除,从表自动删除的功能。只需要在数据库里添加外键,并设置为ON DELETE CASCADE。
这种外键在删除主表数据时,会自动删除从表中执行被删除数据的记录。只要外键设计的好。主表删除一条数据,一堆从表跟着删得尸横片野……

巴扎黑

最好是在表中新增一个字段,标识出该条记录是否删除。

迷茫

设置一个标识字段,将用户标识为已经删除,之后查找的时候,所有与用户相关的个人数据就无法在查找到也就不用做过多的操作。至于统计之类的则可以多加一个对于用户是否可用的判断即可。

ringa_lee

我觉得也是,数据一定不要删,保不齐你那天又想要了。没了可咋整。。

迷茫

一个事物保准给她删的干干静静

伊谢尔伦

放在一个数据库事务中,一起删除

ringa_lee

参考laravel的soft delete 增加一个字段delete_at 默认为null 删除的时候更新为当前时间

怪我咯

你敢删数据?!我报警了!

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

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