一个用户在不同表里都有记录,怎么删除比较好?
目前后台有一个删除用户的功能,但是由于功能模块很多,需要清理用户在多张表下的记录。
<code> //清除该用户的所有发布的文章以及文章关联的标签 //清除该用户的所有关注的标签 //清除该用户的所有问题 //清除该用户的所有回答 //清除该用户的所有积分 //清除该用户的所有评论 //清除该用户的所有收藏 //清除该用户的所有问题关注 //清除该用户的所有私信 //清除该用户的所有消息通知 //清除该用户的所有草稿 //清除赠送给用户的所有邀请码 //清除该用户所有的邀请回答 //清除该用户的好友关系 //清空用户统计表 //清除用户的报名记录 .... </code>
大家一般如何处理,是确实清除这些相关信息么。还是对删除的用户信息进行保留,只是用标识不做查询??
回复内容:
目前后台有一个删除用户的功能,但是由于功能模块很多,需要清理用户在多张表下的记录。
<code> //清除该用户的所有发布的文章以及文章关联的标签 //清除该用户的所有关注的标签 //清除该用户的所有问题 //清除该用户的所有回答 //清除该用户的所有积分 //清除该用户的所有评论 //清除该用户的所有收藏 //清除该用户的所有问题关注 //清除该用户的所有私信 //清除该用户的所有消息通知 //清除该用户的所有草稿 //清除赠送给用户的所有邀请码 //清除该用户所有的邀请回答 //清除该用户的好友关系 //清空用户统计表 //清除用户的报名记录 .... </code>
大家一般如何处理,是确实清除这些相关信息么。还是对删除的用户信息进行保留,只是用标识不做查询??
首先,如上面各位所说,尽量不要删除重要数据。
其次,如果你确实需要实现主表删除,从表自动删除的功能。只需要在数据库里添加外键,并设置为ON DELETE CASCADE。
这种外键在删除主表数据时,会自动删除从表中执行被删除数据的记录。只要外键设计的好。主表删除一条数据,一堆从表跟着删得尸横片野……
最好是在表中新增一个字段,标识出该条记录是否删除。
设置一个标识字段,将用户标识为已经删除,之后查找的时候,所有与用户相关的个人数据就无法在查找到也就不用做过多的操作。至于统计之类的则可以多加一个对于用户是否可用的判断即可。
我觉得也是,数据一定不要删,保不齐你那天又想要了。没了可咋整。。
一个事物保准给她删的干干静静
放在一个数据库事务中,一起删除
参考laravel的soft delete 增加一个字段delete_at 默认为null 删除的时候更新为当前时间
你敢删数据?!我报警了!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。

SQL是一种用于管理关系数据库的标准语言,而MySQL是一个使用SQL的数据库管理系统。SQL定义了与数据库交互的方式,包括CRUD操作,而MySQL实现了SQL标准并提供了额外的功能,如存储过程和触发器。

Redis是一种内存数据结构存储系统,主要用作数据库、缓存和消息代理。它的核心特点包括单线程模型、I/O多路复用、持久化机制、复制与集群功能。 Redis在实际应用中常用于缓存、会话存储和消息队列,通过选择合适的数据结构、使用管道和事务、以及进行监控和调优,可以显着提升其性能。

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。
