四川省工程建设信息官方网站网站开发规模和工作量的计算

张小明 2026/1/2 17:39:52
四川省工程建设信息官方网站,网站开发规模和工作量的计算,免费游戏打开就能玩,建立公司网站需要什么老板说#xff1a;“数据是公司的资产#xff0c;用户点了删除#xff0c;不能真删#xff0c;万一他后悔了呢#xff1f;万一我们要查账呢#xff1f;就在数据库里标记一下‘已删除’就行了。” 程序员一听#xff1a;“懂了#xff01;加个 is_deleted 字段#xff…老板说“数据是公司的资产用户点了删除不能真删万一他后悔了呢万一我们要查账呢就在数据库里标记一下‘已删除’就行了。”程序员一听“懂了加个is_deleted字段默认 0删除改 1。简单”警告这就是典型的“天堂有路你不走地狱无门你自来”。软删除不是在删除数据它是在养僵尸。️ 理想中的软删除给数据贴个条在产品经理眼中软删除逻辑是这样的动作代码行数 (理想状态)描述删除数据1 行UPDATE user SET is_deleted 1 WHERE id 1查询数据1 行SELECT * FROM user WHERE is_deleted 0恢复数据1 行UPDATE user SET is_deleted 0 WHERE id 1总计3 行 SQL。简直完美既保留了数据又满足了业务。然而当你加上这个字段的那一刻起你数据库里的每一条 SQL 语句都必须为此买单。‍♂️ 第一关无处不在的“Where 诅咒”你以为只是删除那一行代码变了吗不。是你系统里成千上万条查询 SQL 全部都要改。原来的 SQLSELECT * FROM orders WHERE user_id 100现在的 SQLSELECT * FROM orders WHERE user_id 100 AND is_deleted 0恐怖故事新来的实习生写了一个统计报表统计“本月销售额”。但他忘了加AND is_deleted 0。结果报表把那些已经退单、已经取消、已经作废的订单全部算进去了。财务拿着报表去报税发现金额比实际入账多了几百万。老板气得要把实习生“硬删除”了。代价只要漏写一个is_deleted 0就是严重的业务事故僵尸数据复活。 第二关唯一索引 (Unique Index) 的死结这是软删除最著名的逻辑死锁。场景用户 A 注册了testgmail.com。数据库里有唯一索引UNIQUE KEY (email)。用户 A 注销了账号。你执行软删除UPDATE user SET is_deleted 1 WHERE email testgmail.com。此时数据库里还有这条记录只是标记为删除了。过了一个月用户 A 后悔了想重新注册一个账号还是用testgmail.com。**Boom数据库报错Duplicate entry testgmail.com for key email**。数据库大喊“这邮箱已经存在了啊虽然是软删除的”程序员的崩溃解法解法 1自废武功删掉唯一索引。后果失去了数据库层面的保护代码里一旦有 Bug就会产生两条一样的脏数据。解法 2复合索引建立UNIQUE KEY (email, is_deleted)。漏洞你只能“软删除”一次。如果用户注销了is_deleted1又注册is_deleted0再注销……第二次注销时数据库里会有两条(testgmail.com, 1)。Boom又冲突了。解法 3甚至要把时间戳拉进来把is_deleted改成deleted_at时间戳。默认是 0或者 NULL。删除时填入当前时间戳。唯一索引变成UNIQUE KEY (email, deleted_at)。这样每次删除的时间不一样就能共存了。代价为了一个软删除你把最宝贵的唯一性约束搞得复杂无比还要处理 MySQL 对NULL值索引的特殊判定在 MySQL 中多个 NULL 不算重复但 0 算重复这里又有坑。 第三关级联删除 (Cascading) 的哲学题软删除还会引发一个哲学问题“如果父亲死了儿子要不要埋”场景你有一个“文件夹”表和一个“文件”表。用户删除了“文件夹 A”。文件夹 A 变软删除那“文件夹 A”里面的“文件 1、2、3”怎么办选项 A也把文件 1、2、3 全部软删除。问题如果用户要恢复文件夹 A文件 1、2、3 要不要恢复深层问题万一“文件 2”是用户在删除文件夹之前就已经手动删除的呢你一键恢复把用户本来想删的文件也复活了选项 B不动文件只删文件夹。问题你的查询语句会变得极度复杂SELECT * FROM file f JOIN folder d ON f.folder_id d.id WHERE f.is_deleted 0 AND d.is_deleted 0。你得时刻盯着父级、祖父级的状态。代价树形结构的软删除基本上就是逻辑的泥潭。写到最后你都不知道这条数据到底是显示还是不显示。 第四关垃圾堆里的性能危机软删除的本质是随着时间推移你的表里 90% 的数据可能都是垃圾已删除。后果索引膨胀哪怕是没用的垃圾数据也会占用索引空间。查询变慢数据库引擎在扫描数据时不得不跳过大量的“僵尸行”。甚至影响分区如果你想把历史数据归档Archive因为这些数据还混在主表里拆分起来非常麻烦。 结论软删除是“懒惰”的惩罚很多资深架构师会告诉你尽量别用软删除。如果业务真的需要“后悔药”或“历史审计”请使用更硬核的方案历史表Archive Table删除就是真删DELETE但在删除前把数据搬运到一张users_history表里。优点主表永远干净、轻快历史表随便堆垃圾。审计日志Audit Log记录一条日志“User A deleted Order 123”而不是把 Order 123 留在原地变僵尸。软删除就像是在家里囤垃圾你对自己说“这些快递纸箱先别扔万一以后搬家要用呢”结果就是你家里的纸箱越堆越多最后连路都走不动了。技术架构没有完美的银弹只有在泥潭中做出的权衡Trade-off。“你们公司的删除逻辑是哪种”A. 硬汉派直接 DELETE删了就没了。B. 僵尸派is_deleted 1到处都是坑。C. 搬运派删之前搬到 history 表。D. 佛系派不删状态改成‘已停用’反正硬盘便宜。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设制作需要多少钱宝应县天宇建设网站

晶体塑性有限元显示动力学cpfem_vumat子注意此程序为\"界面调用程序\",用于显示动力学。最近在搞晶体塑性有限元仿真的时候,发现显式动力学框架下的材料子程序开发真是个磨人的小妖精。特别是那个cpfem_vumat,说是"界面调用程…

张小明 2025/12/29 17:14:25 网站建设

软件承接网站建设网站建设公司做销售前景好不好

AimsunNext软件介绍及安装 软件介绍 Aimsun Next 是一款功能强大的介观交通流仿真软件,广泛应用于交通规划、管理和研究领域。它能够模拟城市交通网络中的各种交通现象,包括车辆行驶、交通信号控制、公共交通运营等。Aimsun Next 提供了丰富的仿真模型和…

张小明 2025/12/27 19:04:58 网站建设

站内营销推广方案删除网站留言板功能

Axure汉化全攻略:5步告别英文界面困扰 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是否曾经面对Ax…

张小明 2025/12/27 13:54:10 网站建设

大型网站有哪些用php做的做网站安全联盟解

Linux系统用户与组账户管理全解析 1. Linux多用户特性概述 Linux作为一个多任务、多用户的操作系统,具备同时执行多个进程的能力。虽然在某一时刻只有一个进程在处理器上运行,但Linux会在多个进程间切换,让每个应用都能获得一定的处理器时间。 多用户特性允许多个用户同时…

张小明 2025/12/27 23:52:33 网站建设

商城网站建设合同什么值得买wordpress模板

AI智能体评估实战指南:从性能到成本的四维评测体系 【免费下载链接】awesome-ai-agents A list of AI autonomous agents 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-ai-agents 在AI智能体快速发展的今天,如何科学评估这些智能体…

张小明 2025/12/27 23:09:09 网站建设

怎样用godaddy建设一个网站深圳市房地产信息网查询系统

欢迎大家加入[开源鸿蒙跨平台开发者社区](https://openharmonycrossplatform.csdn.net),一起共建开源鸿蒙跨平台生态。Flutter 的动画系统是其打造极致用户体验的核心武器之一,但很多开发者在实际开发中,要么只会用简单的AnimatedContainer&a…

张小明 2025/12/28 4:28:58 网站建设