当前位置: 首页 > news >正文

做网站注册公司一个空间可以做几个网站

做网站注册公司,一个空间可以做几个网站,公司企业网站建设方案,网站开发 seo场景 现在的项目一般使用逻辑删除来处理业务上的删除逻辑,这样方便数据的恢复和追溯,一般加一个 is_deleted 列,值为 0 说明没有没删除,值为 1 说明被删除了。 但是如果表中存在一个唯一索引,例如 name,第一…

场景

现在的项目一般使用逻辑删除来处理业务上的删除逻辑,这样方便数据的恢复和追溯,一般加一个 is_deleted 列,值为 0 说明没有没删除,值为 1 说明被删除了。

但是如果表中存在一个唯一索引,例如 name,第一次 insert 一条 {name: '张三', is_deleted: 0} 的数据,之后将这条数据删除,数据变成 {name: '张三', is_deleted: 1}

随后再次 insert 一条 {name: '张三', is_deleted: 0} 就会出现唯一索引冲突的问题,虽然逻辑上来说之前那条数据已经被删除,但是因为我们唯一索引是建立在 name 上,其并不识别虚拟删除列,

这时候是不是可以考虑将 nameis_deleted 做一个联合唯一索引?但是依然会有问题,如下:

  • + {id: 1, name: '张三', is_deleted: 0} 联合唯一索引: 张三 0

  • - {id: 1, name: '张三', is_deleted: 0} 联合唯一索引: 张三 1

  • + {id: 2, name: '张三', is_deleted: 0} 联合唯一索引: 张三 0

  • - {id: 2, name: '张三', is_deleted: 0} 联合唯一索引: 张三 1

    执行这一步删除时报错,因为上面第二步 id为1的已经产生了一个 张三 1 的唯一索引。

解决方式

思路很简单,就是将虚拟删除后的数据不纳入唯一索引管理范围内,因为删除后的数据也没用了,所以不纳入索引也无关紧要,本身就用不着,因此主要看数据库引擎是否支持这么做,mysql5.7和8分别有不同的支持方式。

mysql5.7

mysql5.7 支持使用一个虚拟列来做唯一索引,这个虚拟列可以加上条件判断,如果非虚拟删除时,列的值是name,否则就是null,这样可以达成我们上述的结果,保证没有被逻辑删除的数据被唯一索引约束着。

CREATE TABLE your_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),is_deleted TINYINT DEFAULT 0 COMMENT '0-未删除,1-已删除',name_for_unique VARCHAR(50) GENERATED ALWAYS AS (IF(is_deleted = 0, name, NULL)) VIRTUAL,UNIQUE KEY uk_name_active (name_for_unique)
);

mysql8

mysql8更直接一些,直接将条件判断带入索引中,无需新建虚拟列。

CREATE TABLE your_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),is_deleted TINYINT DEFAULT 0 COMMENT '0-未删除,1-已删除',UNIQUE KEY uk_name_active (name, (IF(is_deleted = 0, 0, NULL)))
);
http://www.dtcms.com/a/541914.html

相关文章:

  • 网站建设咨询服务合同wordpress国外主题修改
  • 做淘宝要用的网站手游网站源码下载
  • Mysql基础知识之SQL语句——库表管理操作
  • 类似于建设通的网站巴中做网站 微信开发
  • dede装修网站模板预付网站建设服务费如何入账
  • Python异常处理详解:从概念到实战,让程序优雅应对错误
  • 长沙做网站推荐网站显示iis7
  • elasticSearch之API:索引操作
  • 网站建设官网怎么收费哪个网站可以做竖屏
  • 苏州做网站哪家比较好移动端快速排名
  • 做淘宝网站要多少钱如何申请域名邮箱
  • dede网站地图文章变量网站开发课程心得
  • 网站模板绑定域名中国交通建设集团有限公司英文名
  • BeautifulSoup 的页面中需要获取某个元素的 xpath 路径
  • 网站数字证书怎么做辽宁省建设工程注册中心网站
  • 网站开发 总结报告网站的版面设计
  • 网站策划素材网站备份流程
  • 最成功的个人网站新民电子网站建设哪家好
  • 十堰网站搜索优化价格网站建设流程新闻
  • 厦门网站制作公司创网网站后台管理系统
  • 汕头网站制作推荐小程序制作报价
  • 网站建设工作室 杭州网站建设方案论文1500
  • 6.1类的继承
  • 广东集团网站建设安徽网络seo
  • 爱站查询个人如何学习做网站
  • 怎么开发一个网站安徽省建筑工程信息平台
  • 石家庄网络建站中粮我买网是哪个公司做的网站
  • vue2弹出框组件demo
  • G-Star Landscape 3.0 更新,网页版同步上线!
  • 让进程永不掉线:Linux nohup命令的深度指南