在处理很多业务时,有时会碰到“循环”这种特殊业务处理。例如:一个循环任务,IOS上的日历循环计划,工作日闹钟等等。本文从四个方面对循环业务展开介绍,希望对你有用。

循环类业务处理的「增、删、改、查」

这里就来剖析下,『循环』事务的相关业务逻辑处理方案。

本文阐述的『循环 』等同于『重复』。

循环类业务处理的「增、删、改、查」

不同的周期,所产生的具体规则细节不同。

例如:以『周』为周期的话,需要指定是周几,具体可见下表。

循环类业务处理的「增、删、改、查」

X是循环开始点;Y标识所选次数;Z为截止日期。

清楚了循环的本质,接着就是要结合业务,处理业务的循环数据。

循环类业务处理的「增、删、改、查」

2. 『查』:虚实结合

由于循环业务的数据是分开处理的,采用的是【时间换空间】的方式。所以在展示循环业务的时候,查询的原则是:程序化组织,逻辑上判定,展示页优化。

程序化组织:利用程序去向两个表读取数据,然后虚拟化出来相关的循环点。虚拟化是指根据循环规则判断某日是否该有数据展示,若有,则根据业务表组织出一条虚拟数据。

例如:在1月1号制定了每天循环的事务,在2号这天查看时,也能看到此条事务数据,但实际上这条数据是通过程序拼装出来的。

循环类业务处理的「增、删、改、查」

逻辑上判定:除了依靠程序拼装点,还需逻辑检验比对,虚拟化的点是否有实例化过。(实例化见下文)

展示页优化:简单来说,就是用户在客户端查看时,是看不出和那些真实的业务数据的差别,看起来以及使用起来都感觉在操作实际存在的数据。

循环类业务处理的「增、删、改、查」

3. 『改』:实例和重塑更新

对于循环类的事务,更新的方式主要是两类:仅更新当前,更新当前及后续。

仅更新当前:在循环体中的某一时间点,仅需要更新当前的情况。例如:用户制定了一个每周二循环的事务清单,在第3次执行时,当天事务繁多,此清单想删掉其中一条事务,但是后面的暂时不想更改,那就需要更新当前。

因为有些数据点是虚拟的,所以在进行更新当前时,就需要将其进行实例化,也就是新增一条,时间归属于当前时间点的业务数据。这也就是上文提到的逻辑上判定,在实际展示这一时间点的数据时,仅展示这一实例化的点即可。

我们可以把循环事务想象为一个点,通过循环规则,它演变为一段线段。在循环中途对循环业务进行的操作,都是对线段的操作。

循环类业务处理的「增、删、改、查」

更新当前及后续:从当前点开始,后面的循环内容发生了改变。这种就需要对于循环做新增,正所谓“一刀两段”。新产生的循环就是重塑的循环。

循环类业务处理的「增、删、改、查」

4. 『删』:“反常态”操作

正常的业务在进行删除时,不是进行数据的移除,就是进行数据的假删处理,数据不会出现因为【删除】反而增加的情况,但是对于『循环』的业务可能就要区别对待了。

循环事务的删除和它的更改一样,也是具备两项操作:仅删除当前,删除当前及后续。

删除当前及后续:这个很直白,就是从某一处开始,直接截断“扔掉”。

但是,【仅删除当前】可就不好操作了。可能有人会想到删除当前,直接在线段上“一刀两段”把那个特殊点扔掉即可。我们假设这种方式叫截断,看下截断方式带来的实际业务变化。

循环类业务处理的「增、删、改、查」

看样子,采用截断的方式,再进行更新操作也不会有啥影响。那假如把一段循环,在中途删掉两个点。例如:从1月1日到1月10日每天循环的计划,3日和5日因为休息,不必执行了。

循环类业务处理的「增、删、改、查」

当删掉了1月3日和1月5日的事务后,然后把1月4号也删掉,再回到1月2号想调整下循环事务内容时,会发现6号到10号的循环事务内容不跟随变化了。这也违背了上述『查』的展示页优化。

而如果采用【补点】的方式,也就是删除单点时,加一个覆盖点,用于遮盖。

循环类业务处理的「增、删、改、查」

上述的问题也就不存在了,但是这也造成了一个问题,明明是【删除】操作,结果数据库里的数据反而增多了,资源空间占用更多了。

这时就可以用到递归优化,在处理具体循环事务时,判定是否为唯一点,若是直接进行数据清除。对于有子集的则递归化处理,以来减少资源空间浪费。

循环类业务处理的「增、删、改、查」

五、总结

循环类事务,难点在于对于数据的处理上。理清楚具体业务的实际场景,以来定夺具体采用的处理方式。

上述是一个通式,部分也是个例。若是想完美解决,就要理清线段和点的关系,这里不再赘述。

本文由 @29号同学 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议




阻力设计在产品中的应用

阻力设计在产品中的应用

阻力是指物体在流体中相对运动所产生与运动方向相反的力,不仅在自然间中常见,在互联网中也广泛存在。本文作者从五个角度,深入分析阻力设计在产品中的应用,希望对你...

2020-06-18
如何成为一个合格的数据架构师?

如何成为一个合格的数据架构师?

数据架构师在互联网行业中是个很重要的职位,是企业数据资产最重要的“奠基者”。那么,如何成为一个合格的数据架构师呢?本文作者基于自身经历,从三个方面展开介绍,推...

2020-06-18
倒推“抖音短视频”APP产品需求文档

倒推“抖音短视频”APP产品需求文档

文章是倒推“抖音短视频”APP产品需求文档,但由于作者是第一次写需求文档,所以仅对核心需求进行了需求分析与说明。一起来看看~ 目录: 一、文档综述 1.1文档属性 1.2产...

2020-06-18
微信“拍一拍”,真的是一个没什么用的功能吗?

微信“拍一拍”,真的是一个没什么用的功能吗?

昨天微信上线了“拍一拍”功能,用户点击2次头像,会产生头像抖动,震动反馈,且在聊天框中显示“XX拍了拍XX”。 这个功能推出后,很多微信群都在疯狂拍一拍,引起了一波拍...

2020-06-18
数据大屏设计师,我不信你没有这些困惑(上)

数据大屏设计师,我不信你没有这些困惑(上)

从事互联网行业的人,每天都在接收新知识,时常也会有迷惑的时候,尤其是数据大屏这样比较少有人踏足的领域。本文作者以自身经历出发,对数据大屏设计提出了自己的一点...

2020-06-18
客户关系管理的15个模型总结(下)

客户关系管理的15个模型总结(下)

对于ToB产品,仅仅基于用户需求来设计产品架构是远远不够的。B端产品服务的是有着几年,甚至几十年管理积淀的企业,必须依靠一定的理论知识来支撑系统的设计规划。本文...

2020-06-18
B端产品设计:价值主张与需求对应的价值

B端产品设计:价值主张与需求对应的价值

B端产品的需求来源于场景,产品经理通过满足客户需求从而产生价值。因此,SaaS产品经理面对扑面而来的需求时,应当更清晰理解并评判需求的价值。 01 2008年,著名商业...

2020-06-18
以知乎为例,探讨未来产品设计的几大变化

以知乎为例,探讨未来产品设计的几大变化

知乎作为一个典型的问答社区,它本身反映了内容社区产品的很多典型问题。本文以知乎为例,探讨社区类产品未来发展的一些变化,对内容社区感兴趣的童鞋不要错过。 前段...

2020-06-18
如何用产品思维打造线上课程?

如何用产品思维打造线上课程?

如何用产品思维来给自己打造一个线上课程呢?本文从市场调研、课程开发、运营推广、成交这几个方面分享如何打造自己的课程,希望对大家有所帮助~ “地摊经济”重出江湖,...

2020-06-18
「武侠连载」营销中心设计——优惠券

「武侠连载」营销中心设计——优惠券

优惠券是常见的一种营销推广的方式,但是你真的了解它吗?本文作者以武侠故事的形式,对优惠券展开了生动的分析,对优惠券感兴趣的童鞋不要错过哦。 (武侠情节接上文“...

2020-06-18
金融支付财务融合业务-实践分享1:订单、账单、交易流水、账套知识解构、原理解析

金融支付财务融合业务-实践分享1:订单、账单、交易流水、账套知识解构、原理解析

本文作者从实际工作实践出发,结合案例等分享了电商金融支付财务融合中的基本概念和相关原理解析,包括:订单、账单、交易流水和账知识解构,供大家一同参考和学习。 ...

2020-06-18
关于卡片设计的分析与思考

关于卡片设计的分析与思考

卡片是APP常见的设计形式,它既有好处也有弊端,因此需要根据场景和内容确定展现形式。本文从四个方面对卡片设计展开分析,推荐给对卡片设计感兴趣的童鞋阅读。 卡片是...

2020-06-17
内容型产品中,付费会员功能如何设计?

内容型产品中,付费会员功能如何设计?

付费会员制度让用户预付会员费,将钱留在平台,那么未来一定会有消费行为,那么会员制度要如何设计,才能激励用户付费呢? 01 为什么要做付费会员? 讨论这个问题之前...

2020-06-16
文字社区是否可以拥有弹幕?

文字社区是否可以拥有弹幕?

从社区产品的角度来思考,弹幕功能对于内容生产方,内容消费方以及平台方而言各自有什么意义?图文内容社区是否有机会拥有弹幕呢?如果可以发弹幕,用怎样的形式呢?本...

2020-06-16
FMS财务系统收支结算总结

FMS财务系统收支结算总结

本文按照FMS收支结算划分,结算流程分类及各系统交互,财务系统内部结算基础能力,收支结算整体结构的顺序来依次介绍,总结财务系统收支结算的结构,和一些作者的个人思...

2020-06-16
如何迅速提升用户好评?试试这三种方法

如何迅速提升用户好评?试试这三种方法

小编推荐:如何提高一个产品的用户评分,改变大家对这个产品的印象呢?本文作者给大家介绍了三个概念:用户体验地图、峰终定律和服务蓝图,并详细解释了该如何使用这三...

2020-06-16
对工具型产品易学习与易使用的思考

对工具型产品易学习与易使用的思考

小编推荐:易学习是指怎么让新用户的学习成本降低,能够很快地掌握产品的使用,它的前提是足够简单和容易理解。而易使用是指,如何让用户快速、高效地完成一项任务,达...

2020-06-16
比对象还懂你!推荐算法为啥这么准?

比对象还懂你!推荐算法为啥这么准?

信息过度和广告过多的社会中,推荐算法的使用也就显得理所当然,但是它是如何做到了解用户的呢?本文从用户画像的定义和设计出发,结合实际案例,深入浅出地阐述了基于...

2020-06-15
B端平台产品需要培养的4种意识

B端平台产品需要培养的4种意识

对于许多刚入行不久的产品经理来说,B端平台产品是比较有难度的一项工作。本文作者基于自己的工作经历,提出了四点关于B端平台产品需要培养的4种意识,希望对你有帮助。...

2020-06-15
广告系列:保留价

广告系列:保留价

在一次拍卖中如果所有买家的报价均小于卖家的估价时,则拍卖品不出售由卖家保留,此时卖家的估价就是保留价,也叫底价,全称市场保留价。对于卖家来说,保留价的设置保...

2020-06-15