业务管理系统-数据导入经验漫谈

在开发中有时会遇上“数据导入”这类需求。一种常见的场景是系统要上线前,历史数据要导入,这里谈一下这类工作的操作思路。

通常,历史数据是excel格式提供的,如果数据模型较复杂,最经常遇上的就是字段不符合校验关系这个问题了。建议在实际导入之前,由实施人员多花精力核对数据的有效性。

因为数据质量的原因,往往会要多次导入才能成功,这里有几点建议可以减少无谓的失误。

1 为excel数据增加唯一标识(增加一列,用对应的行号即可)。正如我们在数据表中设置唯一标识一样,在excel里面加唯一标识,方便后续数据的核对。(为什么不能直接用行号?有时候排序或者增删数据时,数据对应的行号会变。)在导入数据时,要把这标识也导入。

2 写导入的业务逻辑时,请根据场景确定支持不支持重复数据校验。一种方案是导入前删除之前的数据,另一种方案是确定数据唯一性,导入时检测是否已存在该数据,存在则操作是修改而不是新增。

3 导入时,根据业务场景确定校验错误时,是保存正确行的数据还是全部回滚。

4 给以导入失败完善的错误提示信息,一种方式是将错误信息写回excel文件,不能这样时,则输出错误日志,尽量详细。

5 在代码编写时,建议的方案是先读取数据,全部校验,最后保存数据库。这种方式一方面是将数据的读取和数据的转换保存业务逻辑分开,另一方面可以全部数据校验,返回全部校验错误,而不是每次遇上1行的错误就退出。

6 业务逻辑如很复杂,还可以创建“中间数据表”,即按照excel提供的数据结构创建数据表,第一步先将excel数据做简单校验,通过后,保存在中间表中,然后再诊断中间表进行数据处理,转为正式数据。这种模式的好处是,数据转换的业务代码可以多次修改后再重新执行,省去前面上传excel文件和简单校验这些重复步骤。

7 一定要重视导入后的数据核对。

原文地址:https://www.cnblogs.com/honghuamin/p/how_to_import_excel_data_into_erp.html