前期工作
一,预测要导入的数据的量
1.判断要导入的每一列数据的变化情况(数据库操作是insert的情况多还是update的情况多)
2.导入数据时能接受等待多长时间,导入的量能最少接受多少(1000条,还是10000条,还是50000条??)
二,数据错误的显示形式
1.统一报错格式,设置错误类型等等
1),比如文件超过大小,可以报错类型为1. 文件行数超过多少行,可以报错类型为2.
2.在页面显示报错信息形式
1),是要在当前导入页显示,还是新的页面显示
2),报错信息是否还需要导出?
3),报错信息是以弹窗形式还是页面排列形式?展示时间又为多久?
三,数据将要以什么方式传递到后端
1.form表单直接提交?
2.ajax提交(第三方类,jquery.form.js)
1).jquery.form.js类可以防止页面刷新提交.
四,数据要处理的逻辑有哪些
1.需不需写些日志
2.和其他同事在代码上的交互,某些状态的关联修改
代码优化主要是将所有要多次查询的语句,能一次性查询则组装好一次性查询
比如 : foreach($arr as $v){
$sql = "select * from goods where id = {$v['id']}";
}
代码优化
先将$arr里面的所有id提取出来,组合成内容为 $ids = '1','2','3';
最后一次性查询 SELECT * FROM goods WHERE id IN($ids);
如果是update的语句..仍然有一部分可以组合优化
UPDATE goods SET status = 1 AND id IN(XXXXX);
更负杂的有多种维度的情况仍然可以优化
比如导入数据中有仓库这个维度.
我们可以组合数组
$arr = array(
1 => array('1','2','3'), //A仓库
2 => array('1','2','3'), //B仓库
3 => array('1','2','3'), //C仓库
);
只要sql语句能一次性修改的(insert,update,delete),尽量都优化.
不过会照成代码较为复杂,所以要提前想好整个代码是否要优化到如此程度