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

上市公司做网站有什么用网络营销平台的账号如何运营

上市公司做网站有什么用,网络营销平台的账号如何运营,建设网站遇到问题的解决方案,网站域名解析ip地址唯一性约束和逻辑删除的冲突 问题描述 如果一张表中,存在唯一性约束,比如一些数据中的code,且数据表使用逻辑删除。当删除某行数据的时候,以后再次插入相同code的数据,数据库会报错。 问题分析 在逻辑删除中&#…

唯一性约束和逻辑删除的冲突

问题描述

如果一张表中,存在唯一性约束,比如一些数据中的code,且数据表使用逻辑删除。当删除某行数据的时候,以后再次插入相同code的数据,数据库会报错。

问题分析

在逻辑删除中,数据没有被物理删除,而是用一个deleted字段标记数据已被删除,当查询数据时过滤掉已删除的数据。实际上数据仍保留在数据库中。当插入相同code的数据时,数据库的唯一性约束会限制数据的插入。

PS:如果使用的是mybatis-plus框架,可以通过配置文件开启逻辑删除功能。当查询数据时,会在where条件自动拼接deleted。

解决方案

解决方案是多样的,要基于业务和资源做权衡。由于项目要保持逻辑删除不变(数据是无价的!),解决方案是在有唯一性约束的表中,通过新增一个delete_timestamp字段,组成联合索引。delete_timestamp默认为0,在删除数据时,delete_timestamp赋值。这样,当下次插入的时候,数据库不再单独对code做唯一性校验,而是对code和delete_timestamp组成的联合索引做唯一性校验。由于删除后的delete_timestamp与新增的delete_timestamp必定不同,所以不会再有重复插入数据的报错。如果数据没被删除,新插入相同的code时,由于delete_timestamp都默认是0,所以同样会正常拦截。

PS:对于delete_timestamp字段的操作,建议封装成公共方法。

尽量不使用外键

虽然在学习的过程中,为了理想中的保持数据一致性,外键会经常被提及。但在实际业务开发过程中,非必要不使用外键约束。原因在于外键的使用可能引发一系列数据一致性的问题。比如在表中做增删改操作时,如果表字段使用了外键,要同时考虑外键所在表的数据一致性问题。这些问题会非常频繁地出现,而且解决起来会大大增加业务代码的复杂度,增加了维护成本和风险。

不使用外键,但又有相关需求,需要在一张表中存入另一张表的主键,如何实现?这种情况可直接通过业务代码控制,在插入数据时,先查询到相应的数据再插入。当然这不可避免难以保持数据一致性,但比起要保持数据一致性付出的代价,在业务层处理的成本要低得多。

总结

在数据库中建立的数据约束,都应该在业务层的时候做好相关校验,让错误在业务层被拦截并抛出,这样做有助于数据被定位和友好提示。数据库约束,是最后一道防线。

http://www.yayakq.cn/news/341086/

相关文章:

  • 买空间域名做网站棋乐平台代理
  • 有哪些网站是响应式的宁波建设网站价格
  • 百度收录的网站多久更新一次做一套网站开发多少钱
  • 晋江市住房和城乡建设网站义乌网站建设费用多少
  • 网站建设企业网站制作平台营销型平台网站建设
  • 电子产品网站设计天河区营销型网站建设
  • 揭阳企业做网站百度推广代理加盟
  • 弹幕做的视频网站东晓南门户网站制作
  • 用php开发网站教程国际商业网站
  • 好的做外贸的网站有哪些优质的广州微网站建设
  • html在网站开发中的应用邢台163最新交友
  • 锦州网站建设更好app推广引流渠道
  • 网站开发与管理大作业加强网站的建设与管理
  • 湖州企业做网站网站怎么提高收录
  • 商洛网站建设公司企业管理工具
  • 四平市住房和畅想建设局网站做空视频文件的网站
  • 做自动发卡密网站的教程溧阳市城乡建设局网站
  • 做外贸仿牌都用哪些网站荣耀手机价格表大全一览
  • 好公司的网站设计dw制作简单网页
  • 网站推广方案及预算wordpress 导出表单
  • html5培训网站模板wordpress中文是什意思
  • 盐城网站建设公司网站怎么做直通车
  • 晋城两学一做网站专业做商铺的网站
  • 西部数码网站管理助手 mysqlwordpress防伪查询主题
  • 关于网站建设的合同协议深圳出台多个利好政策
  • 用网站做赌彩广告宁夏微信服务网站
  • 网页设计作业之玩具商城网站国外一直小猫做图标的网站
  • seo网站关键词排名优化公司影视宣传制作公司
  • 旅游电子商务网站有哪些做淘宝店和做网站
  • 做电子商务网站注册哪一类商标wordpress 设置图片大小