求一个 删除帖子的 合理思路
比如我程序要提供删除帖子功能
帖子里面包含了(图片,文字,还有帖子的评论)
我原本思路就是一个函数先删除图片 文字 然后评论
然而这样一个函数的代码非常长,差不多有100多行,而且后面维护起来也难,一堆if else看得我自己都头晕。并且如果中间有一个地方执行出错就麻烦了,我删除图片的时候是调用七牛接口删除,所以也不排除网络故障的可能
所以希望大神提供一个设计思路,方便后期的维护并且能完美的解决意外的发生
回复内容:
比如我程序要提供删除帖子功能
帖子里面包含了(图片,文字,还有帖子的评论)
我原本思路就是一个函数先删除图片 文字 然后评论
然而这样一个函数的代码非常长,差不多有100多行,而且后面维护起来也难,一堆if else看得我自己都头晕。并且如果中间有一个地方执行出错就麻烦了,我删除图片的时候是调用七牛接口删除,所以也不排除网络故障的可能
所以希望大神提供一个设计思路,方便后期的维护并且能完美的解决意外的发生
如果帖子包含图片,文字,评论等等相关信息。
那么如果要删除它们的时候必定是要写上 delete图片,delete文字,delete评论 的相关sql语句的,这是无法避免的。
那么剩下的问题就是如何拓展与维护此类功能了:我强烈推荐写一个观察者模式,当删除帖子操作触发时就顺带触发删除图片,文字,评论的相关操作。这样子即易于拓展又方便维护了,毕竟一个方法对应一个方法,不用写那么多if判断。
小tips:最好不要使用事务,帖子这些不是敏感信息,所以就算删除过程中出现错误也不会有什么影响(无非就是数据库信息会变得混乱与不完整),加快速度才是最重要的
可以给帖子设置一个状态 显示 隐藏 删除
删除的时候只设置成删除状态 前台不显示
然后放一个定时执行脚本 再去彻底删除状态为删除的帖子
现在删除都是在做逻辑删除,为啥要做物理删除?
其实7牛的稳定性很不错的,几乎不用太担心网络问题,当然你也可以为这些文件所在的表增加一个deleted字段,开始删除的时候本地将其变成1,然后远端删除后回调函数真正删除,否则等待定时任务对deleted=1的数据进行二次清理。
至于文字、评论等等,其实它们最好使用外键关联你的帖子,这样直接级联删除了,不需要任何额外的处理。或者ORM类的框架在声明model的时候可以指明依赖关系,自动完成级联删除,反正手工处理实在是太不理想了。
这个在前端实现有点麻烦,尤其是在使用第三方接口的时候,得我们手动调用多个删除方法,如果再遇上批量删除那叫一个酸爽。
后来我索性不删了,反正也不是多大的文件。
数据不要删除,。。不要删除

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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

热门话题

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

可以通过以下步骤打开 phpMyAdmin:1. 登录网站控制面板;2. 找到并点击 phpMyAdmin 图标;3. 输入 MySQL 凭据;4. 点击 "登录"。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

Redis 使用单线程架构,以提供高性能、简单性和一致性。它利用 I/O 多路复用、事件循环、非阻塞 I/O 和共享内存来提高并发性,但同时存在并发性受限、单点故障和不适合写密集型工作负载的局限性。

如何使用 phpMyAdmin 连接到 MySQL?访问 phpMyAdmin 的 URL,通常为 http://localhost/phpmyadmin 或 http://[您的服务器 IP 地址]/phpmyadmin。输入您的 MySQL 用户名和密码。选择您要连接的数据库。点击 "连接" 按钮以建立连接。
