产品功能设计之——表格导入功能,你真的会了吗?
编辑导语:表格导入是日常生活中我们常接触的功能之一,在导入过程中,我们可能会遇到数据重复、导入内容不固定等情景,碰到这些问题情景,我们应该如何处理呢?本篇文章里,作者就表格导入功能可能遇到的问题情景、解决方案等方面进行了总结,一起来看一下。
产品功能设计是最近自己比较想聊的一个话题,主要看到身边很多人在设计功能的时候还是停留在样式交互,底层的逻辑和功能本身的适配方案反而不受关注。
所以,之后我会把日常过程中接触到比较有代表性的功能拿出来好好总结一下分享给大家,希望能给大家带来一点启发。
接下来,看正文!
一、重复数据处理
导入过程中,我们最常见的异常流程就是重复数据如何处理的情况。在设计这种异常流程时,我们首先要明确重复数据的概念。
一般我们定义重复数据时,定义的是导入的数据源中存在重复数据,也就是你的导入表格中存在重复数据。同时这里的重复数据应该指的是表头的number ID的重复,如下图:
针对number ID与内容一一对应的情况,为了能够确保导入数据的准确性,一般会设计三种逻辑。
第一种:以最先导入的数据为准;第二种,以最后导入的数据为准;第三种,存在重复数据时不执行。单看这三种方式,一般会选取第二、三种,第一种对于开发来说不太友好。大家可以基于实际场景去考量。
这种导入的结果会存在新增和覆盖两种,新增对应数据库没有该number ID产生新的number ID数据,覆盖对应数据库中已有number ID且数据内容不一致则进行覆盖。
如果说你导入的表格,number ID与内容存在一对多或多对多的关系,就不用考虑重复数据,导入结果只会有新增。Number ID和内容完全一样的数据,对于实现结果来说是不需要考虑的。
二、一对多关系导入
对于常规的导入一般都是一对一的关系,这种场景基本比较好理解,模版上基本也没有过多的设计。
但当我们导入的内容,number ID与内容存在一对多的关系,这个时候我们对于模版的设计会大大影响使用者的效率,具体怎么设计还是需要考虑实际场景。
第一种:内容包含元素较多时,运用平铺的方式设计模版,如图:
第二种:同样的内容,在同一单元格内分隔符的方式区分,如图:
这两种方式的本质其实都是一样的,将复杂数据结构化存储。这样的数据导入大多数情况一般都用于数据初始化,在这里其实我们要顺便提一句表格导入情况下的配套功能。
其实看了上述两种导入,你会很自然地发现导入只能做到数据新增,为什么呢?
如果我们以表格内容数据做到替换,那么每一次用户在导入的时候,他其实都要拿到全量数据才能维护,这对于用户日常使用显然是很不合理的。所以,后续我们针对所有参数会在系统本身考虑增加删除的功能,而不会考虑对表格内容本身做替换。
三、导入内容表头不固定
最后一种导入在常规的场景中也会遇到,主要是用于导入内容不固定的情况。如下图这种:
对于这种表格,我们一般会比较灵活地去考虑功能设计。如果考虑是一对一的情况,number ID存在多条,参数内容没有重复的情况,将其定义为新增。如下图:
一旦有重复参数,我们都将其默认为重复数据,执行我们之前的三种逻辑。
整体来说,上诉的表格内容导入一般能解决大多数的场景需求。这次的表格导入功能也分享到这里了。感谢大家的阅读!
作者:红尘;公众号:都市摆渡人
本文由 @都市摆渡人 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。