【算法与数据结构】数据结构基础 - hippowc/hippowc.github.io GitHub Wiki

数据结构

有向图与工作流设计

有向图是工作流的抽象,如何设计一个工作流的数据模型,实际上可以抽象为如何存储一个有向图。图的边代表从一个节点跳到另一个节点的动作,图的结点代表一个流程的其中一个状态,整个图的定义代表着一个工作流,所以只要能将图表达出来,就完成了数据库的设计。

一般图使用邻接表来表达,应用在数据库中,可以这么设计:tb_node是用来定义结点,tb_route用来定义边,

tb_node的表结构:node_id、node_name

tb_route的表结构:route_id、route_name、current_node_id、next_node_id

但实际工作中会发现,我们要设计的工作流有很强的业务性,即它是很特殊很特殊的图,以至于设计上会和抽象的图差别很大。譬如可以不设计node,譬如route表中可以保存多个边。所以懂图的结构跟能设计一个合理的工作流,基本上没有半毛钱的关系。但是对于理解如何将现实问题转换为计算机语言是很有帮助的