zoukankan      html  css  js  c++  java
  • 业务管理系统-数据导入经验漫谈

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    asp.net 页面生命周期事件详细
    linux服务nfs与dhcp篇
    linux服务samba与ftp篇
    官网Android离线文档下载
    Android发布apk后解决百度地图不显示的问题
    win10和office2013激活
    Android-Intent and Intent Filters
    Android设置透明状态
    Android获取屏幕大小(Px)
    我的java web之路(JSP基本语法)
  • 原文地址:https://www.cnblogs.com/honghuamin/p/how_to_import_excel_data_into_erp.html
Copyright © 2011-2022 走看看