码迷,mamicode.com
首页 > 其他好文 > 详细

论ERP系统开发 一:数据处理结构 - 数据流向 以及 数据模型

时间:2015-06-13 23:12:09      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

在ERP系统的开发过程中,或者用我更喜欢的说法,在erp的制作过程中,很多的操作是数据的流向,数据的操作,数据的继续流量,这种类似流水线的数据处理,

譬如订单的处理,要经过订单抓取,订单状态核对,订单财务审核,订单人工审核,订单物流号获取,订单发货,等等,就是:

1-2-3-4-5-6-7-8,1是我们的初始数据,  8是我们的最终结果,当然,在实际的操作过程中,并不是单条线这么简单,很多的是各条线的交叉混杂,让整个系统看起来复杂的多,

系统软件是世界的抽象,我们这个时间是简单的,通过无限的循环,以及循环过程中发生的微小差异,早就了我们的世界,那么,可以这么说,我们的这个流水线,我们也可以进行切分,让他复杂的外表变的简单化,这个方法就是找到内在的机理

一.

ERP 流水线模型

1-->2-->3-->4-->5-->6-->7-->8-->9-->10,这是一条最简单的流水线处理流程,但是在实际情况下可能数据的来源不是一个线

而是  :

1------>} ====>3

2------>}

也就是说,3的数据来源,有两个,为1和2,同样,3产品的结果可以有多个,因此,N个数据的来源进入3,3操作数据后,产生了N个结果,让这个流水线变的错综复杂

但是万变不离其宗,我们需要分析的就是单个数据的处理模型


二:

数据处理模型

1--->} ********** {----->4

}====> *****3****  }===>{

2--->} ********** }------->5

上面的模型,3代表一个数据处理黑盒,1和2都可以给3传递数据,当然,1和2的数据类型不一样,譬如处理的订单可能是B2C网站的,也可以是亚马逊那边的订单,因此数据需要有数据类型,3接受数据后,进行数据处理,根据不同的操作算法,产品不同的结果,对应4和5,譬如订单审核后,有的订单是成功的,有的订单是失败的,那么成功的订单,就会进入下一步,但是失败的订单,就会停止,等待其他的处理,这就是数据的处理模型


三:

数据传递类型

在数据传递的类型中,有三种,这个要看传递数据的主动发起者,和数据的接收者来划分的。

在A->B(A为主动,B为被),A->B(B为主动,A为被动) , A->A,A把数据传递给本身


四:

数据的传入,传出,数据的处理

对于数据处理模型我们在细分,就分为数据的传入,传出,数据的处理,三个部分

4.1数据的传递

在三,我们看到了数据的传递类型,这里我想说的是数据传递的特性,设计到数据的传递,我们需要的是1.数据不能丢失,2数据不能重复被插入到B,

在上面的情况和要求下,我们需要1:数据操作成功后,进行数据标示,2:即使执行完,在被标示的时候出现问题,下次再次执行的时候,在接收方B依然有唯一字段进行防范数据的多次插入,当然,更新一般是没有问题的。也就是说,我们要保证在数据传递出现故障后,等故障消除后,系统的数据传递依然能够安全的持续进行,保证数据的不丢失和不重复。这是数据传递的精髓所在



五:数据传递的发起者

有三种,1是远程程序调用,被执行,2是CRON计划任务,3是操作客服进行的操作,无论哪种操作,我们都要考虑数据的安全性,A和B都要考虑数据的安全性,都不能完全的信任对方,

远程程序调用,CRON计划任务,一般用日志,或者数据表的形式进行标记每一步的执行,每次执行成功后,都需要在数据库中进行标示,也就是设置一个下次执行的开始点

,另外一点需要注意的是,被执行的数据,即使下次又被执行了一次,还是和一次执行一样的结果,这就需要对每次执行的数据做好状态标示,即使下次执行,发现被执行,就会被跳过,当然,这个防范措施,在接收方仍旧要进行处理,保证数据的一致性。

对于客服操作,某些操作可以不进行标示,毕竟人是可以看到结果的,但是为了防范误操作,还是和CRON一样,都需要保证数据不被丢失和不被重复。


六:角度分析:

涉及到角度分析,就要从某一个事物为中心,围绕这个事物展开的研究,就像日心说和地心说。日心说虽然代表的进步,但是这只是代表着太阳系,从宇宙来看,都不是中心。

如果从数据的处理流程来看,是12345678的流水线的处理,但是如果从订单表的数据这个中心点看,就是这个数据一直都在那里,然后12345678依次对这个数据进行改动,按照顺序


总结:

涉及到流水线,一般:

总状态:代表每一个节点处理完的结果,以及下一个节点处理数据的条件

节点状态,代表一个节点处理数据完成后不同的结果,标示为不同的结果,然后进行分流,如果只有一个结果,那么,就不需要节点状态

数据类型:这个代表节点处理的数据的来源,不同的来源传递过来的数据,类型不通,譬如,订单数据的处理,B2C的订单和亚马逊的订单的数据类型不同

操作时间:这个不用多讲

操作人:这个是为了以后找到对应人的责任


上面的五个字段一般是必备的,每一个节点,都要有一个操作时间,操作后的节点状态,以及操作人,每一步的节点处理完成后,总状态都要改变




















论ERP系统开发 一:数据处理结构 - 数据流向 以及 数据模型

标签:

原文地址:http://blog.csdn.net/terry_water/article/details/46485089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!