034模块间关联关系的优化的思路
前台的各种自定义控件都是为了展示数据和操作数据,作为管理系统的颜面固然重要,但是后台的控制系统默默的为前台提供数据和完成操作任务则更为重要。本自定义系统的核心部分是如何处理模块的关联关系。由于我一直做一些中小型的政府管理软件,模块间树形关系比较明确,因此现在系统中的模块间的关系的处理只能是中规中矩的树形。比如我最早的一个博客里面举例的一个“销售系统”的业务模块如下图所示。
在上面的图中,11个模块的关联关系很直观,没有交叉,每一个模块只有单独的用处,层次关系清晰。现在的自定义系统对于这种关联关系的处理已经很好了。但是随着业务需求的深入,模块间的关联关系会更加复杂化。比如“订单”模块需要增加一个“发货仓库”的关联,发货仓库又有所属“市”的属性;再给“订单“增加“始发地市”和”目的地市“的关联,如下图所示:
上图的这个模块间的结构复杂了不少,主要是出现了非常规树的形状。在上一张图里,“市”模块其实就只能定义为“客户单位的市”,但是在这张图表里,“市”模块就同时要担任4个角色。“省”模块同样也是。对于权限控制来说,最主要的改变是:在上一张图里如果设置一个角色,只能查看江苏省的客户的信息,那么在省的模块上建立一个规则即可,是没有问题的。在下面的图里就有了问题了ÿ