原创 动态配置型软件架构-----客户信息管理系统软件架构分析设计收藏

新一篇: Tuscany SCA软件架构设计理念分析鉴赏 (一) | 旧一篇: J2EE集群开发部署实战

动态配置型软件架构

------客户信息管理系统软件架构分析设计

1.      概述

客户信息管理系统是基于客户(王总)的超前的设计思想和简化二次开发客观需求,因此客户系统必须具有高度的可扩展性和适应性,并且是具有可配置的柔性系统,包括可定制的菜单,可定制的列表,可定制的表单;同时自动生成表单JS校验,自动生成CRUD(增,删,改查)SQL语句和变更更正审核SQL语句,并自动完成数据库操作。为了方便二次开发,适应新的业务需求和校验需求,我们还提供了柔性接口供实现。

2.      客户信息软件架构设计

客户信息管理系统设计分为数据库设计、软件概要设计及详细设计,其中数据库设计主要集中在模版组、模版信息的存储设计,动态菜单、数据字典的存储设计。软件设计包括模版及模版组信息的CRUD操作,基于模版信息的动态列表,动态表单,动态JS函数,定制JS函数,动态SQL,动态缺省数据,业务校验接口设计。

2.1.    显示模版设计

2.1.1. 模版数据库设计图(pdm):

2.1.2. 模版表间关系说明

从上图可以看出,模版组(TempletGroup)和模版组用户(TempletGroupUser)理论上是一对一关系,从而每个能管理客户信息的用户就拥有一个模版组,每个模版组包含若干个模版(Templet),每个模版对应与一个客户信息的业务表(TempletTable),每个模版对应多个模版字段(TempletField),模版字段中包括表单元素的显示属性,包括是否显示,是否必填,是否跨列显示,显示表单元素的类型(输入框,下拉框等),列表显示属性(显示的列名),及业务上的修改或变更是否需要审核等。因为客户关系管理系统的业务表对应多个模版,因此肯定有共有的属性,同样字段也有共有的属性,所以设计了TempletTableTempletTableColumn两个表,同时这个TempletTable表还是定制菜单的基础数据。在理论上,一个用户拥有一个模版组,一个模版组拥有n个用户。

2.1.3. 模版表的详细设计

2.1.3.1.   Templet的基本信息

名称

Templet

注释

模版组模版项目明细

 

 

2.1.3.2.   Templet

名称

注释

数据类型

文本说明

强制

templetId

模版项目ID

INTEGER

 

TRUE

templetTableId

模版表ID

INTEGER

对应templetTable

FALSE

templetGroupId

模版组ID

INTEGER

 

FALSE

templetCategoryId

模版类型ID

INTEGER

不使用

FALSE

templetDisplayName

模版显示名称

VARCHAR2(100)

 

FALSE

templetListJspFile

列表显示模版文件(暂不使用)

VARCHAR2(200)

不使用

FALSE

templetJspFile

对应的JSP文件名称和路径(暂不使用)

VARCHAR2(200)

不使用

FALSE

templetPageName

对应的页面名称(暂不使用)

VARCHAR2(200)

不使用

FALSE

templetDelegateClass

模版对应的代理类(暂不使用)

VARCHAR2(200)

不使用

FALSE

templetRanking

显示顺序

INTEGER

 

FALSE

templetExtend

模版扩展信息

VARCHAR2(200)

未使用

FALSE

templetTablePeriod

报表周期,,季度,,,

VARCHAR2(10)

未使用

FALSE

templetTablePromptPeriod

报表提示周期,,季度,,,

VARCHAR2(10)

未使用

FALSE

templetState

状态,1可用,0不可用

CHAR(1)

 

FALSE

 

2.1.3.3.   TempletField的基本信息

名称

TempletField

注释

模版表字段明细

 

2.1.3.4.   TempletField

名称

注释

数据类型

文本说明

强制

fieldId

字段id

INTEGER

 

TRUE

templetTableColumnId

列流水号

INTEGER

对应templetTableColumn

FALSE

templetId

模版项目ID

INTEGER

 

FALSE

columnName

数据库表列名(暂不使用)

VARCHAR2(100)

不使用

FALSE

fieldName

列名称(暂不使用)

VARCHAR2(100)

不使用

FALSE

fieldDisplayName

显示名称

CHAR(100)

 

FALSE

formTypyId

表单元素类型ID

INTEGER

 

FALSE

formSelectId

下拉表单对应的编码表ID

INTEGER

 

FALSE

formDefaultValue

表单元素默认值

VARCHAR2(200)

 

FALSE

formVerifyRuleId

表单元素校验规则ID

INTEGER

 

FALSE

formMaxlength

表单输入数据长度

INTEGER

 

FALSE

formWidth

表单元素宽度

INTEGER

 

FALSE

formHeight

表单元素高度

INTEGER

 

FALSE

formIsSpan

表单是否跨列显示,1,0

CHAR(1)

 

FALSE

isRequired