1.数据表唯一索引 (两列字段,组合索引)
遇到的情形:项目搭建新测试环境(其实就是所谓的灰度 与线上一致的一个环境);从线上拉回来代码搭建的,数据也是来自于线上数据,但是由于线上数据有部分为机密数据,然后DBA就按照策划、测试要求,清空了部分数据表。
由于上述操作人不清楚整个业务逻辑,只知道数据不能够暴露出来。导致有一条业务线,其部分数据表为空,新增正常;但是关联到其他数据表的时候,其主键已经存在,再次写入时,就报主键冲突。
即新增数据到表A,得到其主键,并需要将其主键写入到表B中,但是A表的数据是清空了的,新增正常;B表的数据未清空,存在对应的原始数据,导致写入时,触发唯一索引,导致报错。
2. 代码中硬编码
现在手里的工作,项目中就是各种硬编码,缺少注释。比如:程序中直接写出接口完整地址;个人觉得比较友好一点的就是设置常量或者系统变量来替代这些数据,这样即使这些数据修改了,我们只需要修改对应的常量,而不是去修改程序。
未完待续
一路踩过的坑 php的更多相关文章
-
项目中踩过的坑之-sessionStorage
总想写点什么,却不知道从何写起,那就从项目中踩过的坑开始吧,希望能给可能碰到相同问题的小伙伴一点帮助. 项目情景: 有一个id,要求通过当前网页打开一个新页面(不是当前页面),并把id传给打开的新页面 ...
-
web开发实战--弹出式富文本编辑器的实现思路和踩过的坑
前言: 和弟弟合作, 一起整了个智慧屋的小web站点, 里面包含了很多经典的智力和推理题. 其实该站点从技术层面来分析的话, 也算一个信息发布站点. 因此在该网站的后台运营中, 富文本的编辑器显得尤为 ...
-
";开发路上踩过的坑要一个个填起来————持续更新······(7月30日)";
欢迎转载,请注明出处! https://gii16.github.io/learnmore/2016/07/29/problem.html 踩过的坑及解决方案记录在此篇博文中! 个人理解,如有偏颇,欢 ...
-
【转载】Fragment 全解析(1):那些年踩过的坑
http://www.jianshu.com/p/d9143a92ad94 Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使 ...
-
Redis Cluster踩过的坑
Redis Cluster踩过的坑请参考如下链接:http://www.iteye.com/blogs/subjects/Redis_Cluster_Devops
-
第八篇:web之前端踩的一些坑
前端踩的一些坑 前端踩的一些坑 本节内容 事件代理 清除标签的所有事件 bootstrap的模态框自定义方法 ajax在django里面实现post提交 ajax提交数据嵌套 1.事件代理 之前写 ...
-
使用ffmpeg视频编码过程中踩的一个坑
今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,非常多时候一旦思维定势真的挺难突破的.以下是不对的编码结果: ...
-
那些年踩过的坑之:first-child伪类选择器
原文:那些年踩过的坑之:first-child伪类选择器 :first-child 选择器用于选取属于其父元素的首个子元素的指定选择器.——w3school 嗯,乍一看好像说的不是很明白,因此这个选择 ...
-
《C++之那些年踩过的坑(二)》
C++之那些年踩过的坑(二) 作者:刘俊延(Alinshans) 本系列文章针对我在写C++代码的过程中,尤其是做自己的项目时,踩过的各种坑.以此作为给自己的警惕. 今天讲一个小点,虽然小,但如果没有 ...
随机推荐
-
基于Nodejs生态圈的TypeScript+React开发入门教程
基于Nodejs生态圈的TypeScript+React开发入门教程 概述 本教程旨在为基于Nodejs npm生态圈的前端程序开发提供入门讲解. Nodejs是什么 Nodejs是一个高性能Ja ...
-
pthread 实现生产者消费者问题
经典的生产者消费者问题,在这里用信号量和互斥量来实现生产和消费者模型 #include<cstdlib> #include<cstdio> #include<unis ...
-
移动端日期控件 mobiscroll
Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.可以让用户很方便的只需要滑动数字既可以选择 ...
-
phonegap学习入门
phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍.补充. Ste ...
-
Javascript进阶篇——(DOM—认识DOM、ByName、ByTagName)—笔记整理
认识DOM文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 将HTML代码分解 ...
-
Spring 装配Bean
Spring 装配Bean 装配解释: 创建应用对象之间协作关系的的行为通常称为装配(wiring),这也是依赖注入的本质 依赖注入是Spring的基础要素 一 : 使用spring装配Bean基础介 ...
-
Java JDBC Batch
Java批量处理数据 import java.sql.Connection; import java.sql.PreparedStatement; //import String sql = &quo ...
-
linux系统常见压缩命令
在linux环境中,压缩文件的扩展名基本是:*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2 *.Z compress程序压缩的文件 *.gz gzip程序压缩的文件 *.bz2 ...
-
16 多校 8 Ball (贪心排序)很巧妙的思路啊~
ZZX has a sequence of boxes numbered 1,2,...,n1,2,...,n. Each box can contain at most one ball. You ...
-
day08_雷神_模块一
# day08 一.模块 回顾相关: 取值顺序: 在局部调用:局部命名空间->全局命名空间->内置命名空间 在全局调用:全局命名空间->内置命名空间 内置函数: globals(), ...