首页  >  文章  >  后端开发  >  一个用户在不同表里都有记录,怎么删除比较好?

一个用户在不同表里都有记录,怎么删除比较好?

WBOY
WBOY原创
2016-06-06 20:24:441228浏览

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

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

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

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

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

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

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

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

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

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

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

            //清空用户统计表

            //清除用户的报名记录
            ....
            
            </code>

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

回复内容:

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

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

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

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

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

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

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

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

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

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

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

            //清空用户统计表

            //清除用户的报名记录
            ....
            
            </code>

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

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

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

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

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

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

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

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn