【FineReport开发系列】填报入库之主键设置

楼主
奋斗—努力做一个数据展示砖家

1.概述

相比较Finebi而言,FineReport有一个比较常用的功能——填报。

虽然FR的填报功能做稍微大规模的应用系统有点吃不住,但是针对基础的数据分析下的数据补充,则是绰绰有余。

而在各种不同的数据收集场景下,填报入库方式也各有不同,但一个完备的填报表的基本功能是一致,主要包括增、删、改、查四类。

其中为了实现删、改两个功能,就必须设置主键【这里的主键指FR填报的主键,相当于 SQL 中 where 的效果,不同于数据库的主键】

而主键的设置场景有四类,包括不设置主键、非填报数据列主键【单列】、填报数据列【单列&多列】、填报数据列规则【单列】

具体如文

2.主键设置

2.1不设置主键

2.1.1设置方法

如下图,在填报表开发时,直接主键列不进行勾选即可

2.1.2 优点

①不做数据比对,插入速度快

②数据导入或者填报时,不需要在做数据校验,基本不会出现数据丢失的情况【所填所导即为所得】

2.1.3缺点

①数据可能存在重复填报或者导入的情况,导致数据质量低

②无法实现填报表的删、改功能

2.1.4使用场景

大量非标准【缺失主键】流水直接导入【线下数据直接入库】

2.2 非填报数据列主键【单列】

2.2.1设置方法

如下图,主要包括三种方法:

①利用uuid生成唯一性主键,参考【使用UUID自动生成主键

②数据库配置自增ID,以ID作为唯一主键,参考【数据库自增长ID填报

③自建规则生成唯一性主键,比如填报日期today()+序号seq()

注意:未防止重复生成,需要在页面端配置,展示;对为空的数据再生成

2.2.2 优点

①支持对填报的所有数据列进行修改【修改成本低】

②数据导入或者填报时,不需要在做数据校验,基本不会出现数据丢失的情况【所填所导即为所得】

③支持导入前清空对应区间或者条件数据之后导入等高级功能开发

2.2.3缺点

对数据导入不太友好,数据可能存在重复导入的情况

2.2.4使用场景

①大量非标准流水导入、查询、修改和删除【线下数据直接入库】;②标准维度数据的维护,不用单独维护编码【关闭导入功能】;③常见的各类填报表

2.3填报数据列【单列&多列】

2.3.1设置方法

如下图,直接设置对应主键即可【1个&多个】

注意:其中的1个&多个列需要确保数据的唯一性

2.3.2 优点

①可以重复导入数据,支持对数据进行校验,防止数据重复【数据质量高】

②支持导入前清空对应区间或者条件数据之后导入等高级功能开发

③支持对填报的部分数据列进行修改

2.3.3缺点

①在对数据修改时,不支持对主键列直接修改【需要先删除在修改才行】

②数据导入时,如果数据不标准,不符合主键要求,会出现数据丢失的情况

2.3.4使用场景

①具有编码的数据导入;②维度表数据维护;③常见的各类填报表

2.4 填报数据列规则【单列】

2.4.1设置方法

该点结合2.2和2.3两个方法,类似2.2的③自建规则生成唯一性主键

2.4.2 优点

解决了2.3中不支持对主键列直接修改【需要先删除在修改才行】的问题。

 

 

最后,文档不完善或者有遗漏的地方欢迎各位大佬补充~~

分享扩散:
参与人数 +1 F币 +50 理由
苏瑞 + 50 【2024原创内容激励奖励】给你32个赞!

查看全部评分

沙发
发表于 前天 11:06
您好,感谢您本次的投稿。您本篇文章基于FineReport填报入库之主键设置进行叙述,并对不同类型的主键设置的设置方法、优缺点、使用场景进行描述,叙述准确,可以添加一些总结性的话术让文章结构更加完善。但整体上逻辑清晰,格式规范,期待您的下一篇投稿~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表