动态配置型软件架构
------客户信息管理系统软件架构分析设计
1. 概述
客户信息管理系统是基于客户(王总)的超前的设计思想和简化二次开发客观需求,因此客户系统必须具有高度的可扩展性和适应性,并且是具有可配置的柔性系统,包括可定制的菜单,可定制的列表,可定制的表单;同时自动生成表单JS校验,自动生成CRUD(增,删,改查)SQL语句和变更更正审核SQL语句,并自动完成数据库操作。为了方便二次开发,适应新的业务需求和校验需求,我们还提供了柔性接口供实现。
2. 客户信息软件架构设计
客户信息管理系统设计分为数据库设计、软件概要设计及详细设计,其中数据库设计主要集中在模版组、模版信息的存储设计,动态菜单、数据字典的存储设计。软件设计包括模版及模版组信息的CRUD操作,基于模版信息的动态列表,动态表单,动态JS函数,定制JS函数,动态SQL,动态缺省数据,业务校验接口设计。
2.1. 显示模版设计
2.1.1. 模版数据库设计图(pdm):
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 266.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""></v:imagedata></v:shape>
2.1.2. 模版表间关系说明
从上图可以看出,模版组(TempletGroup)和模版组用户(TempletGroupUser)理论上是一对一关系,从而每个能管理客户信息的用户就拥有一个模版组,每个模版组包含若干个模版(Templet),每个模版对应与一个客户信息的业务表(TempletTable),每个模版对应多个模版字段(TempletField),模版字段中包括表单元素的显示属性,包括是否显示,是否必填,是否跨列显示,显示表单元素的类型(输入框,下拉框等),列表显示属性(显示的列名),及业务上的修改或变更是否需要审核等。因为客户关系管理系统的业务表对应多个模版,因此肯定有共有的属性,同样字段也有共有的属性,所以设计了TempletTable和TempletTableColumn两个表,同时这个TempletTable表还是定制菜单的基础数据。在理论上,一个用户拥有一个模版组,一个模版组拥有n个用户。
2.1.3. 模版表的详细设计
2.1.3.1. 表Templet的基本信息<o:p></o:p>
名称<o:p></o:p>
|
Templet<o:p></o:p>
|
注释<o:p></o:p>
|
模版组模版项目明细<o:p></o:p>
|
<o:p> </o:p>
<o:p> </o:p>
2.1.3.2. 表Templet列<o:p></o:p>
名称<o:p></o:p>
|
注释<o:p></o:p>
|
数据类型<o:p></o:p>
|
文本说明<o:p></o:p>
|
强制<o:p></o:p>
|
templetId<o:p></o:p>
|
模版项目ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
TRUE<o:p></o:p>
|
templetTableId<o:p></o:p>
|
模版表ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
对应templetTable<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetGroupId<o:p></o:p>
|
模版组ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetCategoryId<o:p></o:p>
|
模版类型ID<o:p></o:p>
|
INTEGER<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetDisplayName<o:p></o:p>
|
模版显示名称<o:p></o:p>
|
VARCHAR2(100)<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetListJspFile<o:p></o:p>
|
列表显示模版文件(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetJspFile<o:p></o:p>
|
对应的JSP文件名称和路径(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetPageName<o:p></o:p>
|
对应的页面名称(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetDelegateClass<o:p></o:p>
|
模版对应的代理类(暂不使用)<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
不使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetRanking<o:p></o:p>
|
显示顺序<o:p></o:p>
|
INTEGER<o:p></o:p>
|
<o:p> </o:p>
|
FALSE<o:p></o:p>
|
templetExtend<o:p></o:p>
|
模版扩展信息<o:p></o:p>
|
VARCHAR2(200)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetTablePeriod<o:p></o:p>
|
报表周期,年,季度,月,周,日<o:p></o:p>
|
VARCHAR2(10)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetTablePromptPeriod<o:p></o:p>
|
报表提示周期,年,季度,月,周,日<o:p></o:p>
|
VARCHAR2(10)<o:p></o:p>
|
未使用<o:p></o:p>
|
FALSE<o:p></o:p>
|
templetState<o:p></o:p>
|
状态,1可用,0不可用<o:p></o:p>
|
CHAR(1)<o:p></o:p>
|
|
分享到:
相关推荐
在企业局域网内,通过本客户管理系统,企业可以为每位员工分配登录账号,每位员工均可自由的录入自己的客户资料和管理自己的客户信息,如此一来企业就可以积累大量的客户资源,并且不必担心员工的离职而丢失已开发的...
我们开发制作的网络考试系统是采用典型的客户机/服务器型的MIS型架构,系统按照功能的分类划分为相对独立但又相关的四大部分,其开发主要包括考生信息和试题的数据库建立和维护、客户机考试应用程序的开发、服务器...
最底层为数据管理层,在硬件环境基础上,采用关系型数据库,建立信息管理平台数据源,包括建立舆情库、敏感词库和规则库. 管理各类信息数据,采用成型的内容管理技术、知识管理技术、发布技术等通用技术,建立业务应用的...
01-mysql-mmm高可用架构-王雄.rar 02-mysql半主从同步-技术分享--余宏刚.rar 03-xtrabackup安装及操作文档-技术分享--王玉晓.rar 04-mysql主从通过mysql-proxy程序实现读写分离.doc 老男孩linux测试读写分离...
49 第 六 章 后端结构化分析子系统设计 51 6.1 系统概述 51 6.2 系统架构与组成 51 6.3 系统功能 53 6.3.1 实时流与历史流分析 53 6.3.2 车辆基础信息识别 53 6.3.3 车辆品牌与子品牌识别 54 6.3.4 安全带检测识别 ...
基于springboot的毕设-火车订票管理系统(源码+配置说明).zip 【项目技术】 开发语言:Java 框架:springboot 架构:B/S 数据库:mysql 【实现功能】 功能包括管理员:首页、个人中心、用户管理、车型信息管理、车次...
对于租赁公司而言,后台管理系统可直观展示车辆状态、订单统计、用户行为分析等数据,帮助公司优化资源配置,提升运营效率。同时,系统采用微服务架构,具备良好的扩展性和可维护性,便于二次开发定制,满足企业不断...
政 府、企事业单位的信息化建设是一个集办公自动化、业务管理、领导决策等应用为一体综合信息管理系统,是一个应用覆盖面广泛,涉及部门多的应用系统。财务、 人事、或业务管理系统往往只是涉及一个部门,或者一...
本课题会开发一个计算机协会社团信息管理系统,从而实现计算机协会社团信息管理系统内部各种繁琐事务的管理。追求低碳生活,摆脱以前纸质化的办公模式,节约人力物力从而达到提高办事效率的目的。随着计算机技术的...
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...
2.1.2 面向对象或面向过程的设计与开发 根据不同的应用类型,采用面向对象或面向过程的系统分析与设计方 法。 传统的软件工程以软件的工程化为目标,强调方法论,工具与环境, 质量保证体系,项目管理,配置管理,...
哈尔滨工程大学数据库课程设计系统(完整可运行系统,带讲解、文档...本文研究开发的疫情信息管理系统总体是基于B/S架构模式,并使用SpringBoot框架共同开发设计而成。系统主要以大众化的主流的大型项目语言——Java语
Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...
详细地介绍动态网页设计和制作的技术和相关理论,全书共分为8章,主要内容包括:动态网站设计概述、动态网站编程环境、网站主页设计与PHP基础、网站计数器设计与PHP文件访问、会员注册和管理设计与数据获取、网上...
“Java毕业设计-基于Spring Boot开发的学科竞赛管理系统”是一个功能全面、结构清晰的软件开发项目,旨在为教育机构提供一个高效、便捷的学科竞赛管理平台。该项目不仅满足了学校或学院组织学科竞赛的基本需求,还...
它包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。 软件定义...
“基于Spring Boot开发的在线课程管理系统”是一项富有创新性和实用性的毕业设计项目。该项目充分利用了Spring Boot框架的便捷性和高效性,为教育机构提供了一个功能全面、操作简便的在线课程管理平台。 该系统涵盖...
采用先进的设计理念,基于.net体系架构,结合强大的平台扩展功能及安全机制,和关系型数据库擅长处理结构化业务数据的特点,完美地解决了系统数据类型复杂、实时协作和安全控制要求高的需求。 4、灵活的流程设置: ...
本书没有局限于对LTE规范的简单翻译,而是基于作者的参会经历,对LTE研究和标准化过程中关键技术的取舍和设计方案的甄选过程进行了分析,诠释了LTE系统设计的思想,体现了标准化的整体设计、全面权衡的特点,因此...