当前位置:   article > 正文

实战:Excel大数据导入通用设计,通过规则处理数据(一)数据库设计分析_分布式excel导入任务设计

分布式excel导入任务设计

“ 实践是检验真理的唯一标准”

01.表设计基本原则

    个人觉得程序员应该具备两个比较重要的能力: 表设计 和 条例清楚的编码习惯。 

    表设计的基本规则是: 一对一时, 两个表都可以放对方的主键; 一对多时,在"多"方存放"一"方的主键; 多对多时, 需要建中间表来存放双方主键的关联关系。

    编写代码的基本原则: 一个方法只对应一个功能。任何复杂的需求都可以拆分成N个小功能点, 根据功能点编写成不同的方法, 既有利于阅读, 也有利于调整, 灵活性更强。

02.表设计的考虑点

  • 同一个文件多次导入时需要能区分,防止多次导入/多次入库

  • 一个Excel文件有多个sheet,治理的对象是sheet,不是文件

  • 同一个文件/同一个sheet支持多次治理

  • 相同格式的sheet文件可以共用之前设置的治理规则

  • 治理后数据中,相同格式的数据属于同一类数据, 这类数据要满足规则中的所有需求, 比如去重, 是拿所有相同格式的数据一起去重

  • 需要显示文件处理数据进度条,显示成功/失败/排除的条数

03.表设计介绍

1.创建时间、修改时间(mysql中这样配置,代码不需要做任何处理,会自动添加值、自动更新)

`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'

2. 文件表(import_file)和Excel单元表(sheet_info)

  • 对于整个项目来说是以文件为维度的, 对于代码层面来说是以sheet为最小数据单元的. 所以设计了两个表

  • 文件表中包含字段file_md5,作用是用来区分文件,避免同一个文件重复上传, 重复数据上传

  • 单元表和文件表的关系是: 多对一的关系, 在单元表中保留文件id的冗余字段. 

  • 单元表是跟数据直接关联的, 所以增加了total字段,方便后续的文件处理时获取原数据总条数

3. 源数据表(source_data)跟单元表(sheet_info)

  • 源数据表和单元表是直接关系, 多对一的关系, 所以在源数据中有sheet_id字段

  • 源数据和文件表(import_file)是间接关系,可以增加冗余字段file_id,也可以不加

4.文件头映射表(header_info)

  • 字段data_type是用来区分源数据/治理后数据的, 治理后有可能导致源数据的映射表的字段发生变更:增加/减少, 所以需要将治理的头映射表保存一份

  • data_type=govern时为治理头映射的数据, 它跟治理数据表(govern_data)整体上来考虑也是:一对一, 我这里就根据字段来header_no进行关联,在治理数据表中增加了header_no字段

5.治理规则表(govern_rule)

  • 因为规则是跟字段挂钩了,所以规则表跟头映射表(header_info)密切相关

  • 相同格式的文件数据可以使用之前使用过的治理规则记录, 引用字段header_no来标识

  • 治理后的数据也要满足所有的header_no字段相同的治理规则

6.治理数据表(govern_data)

  • 它跟文件单元表(sheet_id)/文件头映射表(header_no)/治理规则表(rule_no) 直接关联

  • 具有相同的文件头映射表标识的字段(header_no)的记录, 也要满足 治理规则表(govern_rule) 中对应的规则

  • 冗余之前的源数据id(source_id)

7.治理记录表(govern_record)

  • 它跟跟文件单元表(sheet_id)/文件头映射表(header_no)/治理规则表(rule_no) 直接关联

  • 记录总条数(total_num), 成功条数(success_num), 异常条数(error_num), 筛选排除条数(filtration_num),方便后期增加进度条功能

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/88785
推荐阅读
相关标签
  

闽ICP备14008679号