1、Smart 系统公共资源模块的设计与开发摘 要随着教育改革的不断深化,中小学的建设与发展对国民整体素质的提高起着越来越重要的作用,拥有一套适合校情的在线考试评估系统、将信息技术用于校务管理评估中便是迫切的要求。SMART 系统是一个在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学生在线考试信息的管理和维护。本文涉及到的公共资源模块,它作为 SMART 项目的一个组成部分,占有十分重要的作用,它是后面所有模块的基础,这个模块的设计质量关系到整个系统的开发质量。为保持系统的先进性、灵活性、安全性和扩展性,模块采用MVC 架构以及 Struts、Spring、Jsp、Hibern
2、ate 等等一些目前流行的技术和组件。整个模块包括地区资源、教务资源、试题资源、试卷资源等功能模块。通过这些模块的应用,可以满足 SMART 系统的公共需求,对 SMART 系统的应用和发展起到一定的促进作用。关键词:统计评估;Struts;Jsp ;Hibernate ;SpringThe Smart systemThe Design and Implementation of the Public Resources ModuleAbstractWith the continuous deepening of educational reform, the construction and
3、 development of elementary and middle schools play an increasingly important role to raise the overall quality. Having one automatic Online test system which is used in the school Appraisal management is an urgent requirement. SMART system is an information management system about Online examination
4、, the system is mainly about the examination and evaluation of students and the teachers management and maintenance of students examination information on network.The public resource module which is a part of the SMART system has the extremely vital role in the wholes system. It is foundation module
5、s of system framework, so this modules designing quality relates the overall systems quality. In order to keep the advanced, agility, security and expansibility, the MVC framework, the Struts, the Spring, the Jsp and the Hibernate and so on the prevailing technologies and components are used in the
6、system. The whole module includes the academic resources module, the questions resources module, the papers resources module and so on. Through the research results of this subject, the system combines the present education; promote the development prospect of the educational trade.Key words: statis
7、tics and appraisal; Struts; Jsp; Hibernate; Spring目 录论文总页数:29 页1 引言 .11.1 课题起源 .11.2 课题目的 .11.3 课题意义 .12 系统实现架构环境与技术说明 12.1 系统架构 .12.2 系统实现环境和技术 .22.2.1 开发环境 .22.2.2 运行环境 22.3 系统框架说明 .22.3.1 struts 介绍 22.3.2 理解 MVC 设计模式 52.3.3 spring 介绍 52.3.4 hibernate 组件介绍 .62.3.5 jsp 组件介绍 .62.3.6 SQL Server 2000
8、介绍 .72.3.7 Tomcat 介绍 .83 功能需求分析 93.1 功能需求 .93.1.1 公共资源管理 93.1.2 教务资源管理 93.1.3 试题资源管理 93.1.4 试卷资源管理 93.2 非功能需求 .94 数据库设计 .105 系统模块的设计与实现 135.1 系统模块的设计 .135.1.1 公共资源管理模块设计 135.1.2 教务资源管理模块设计 145.1.3 试题资源管理模块设计 155.1.4 试卷资源管理模块设计 155.2 系统模块的实现 155.2.1 公共资源管理模块实现 165.2.2 教务资源管理模块实现 205.2.3 试题资源管理模块实现 21
9、5.2.4 试卷资源管理模块实现 246 测试 25结 论 26参考文献 27致 谢 28声 明 29第 1 页 共 29 页1 引言1.1 课题起源随着社会的发展,计算机的普及,将教育产业信息化成为可能而且这种呼声也越来越高,传统的考试、统计、评估、管理工作也越来越显的繁重和笨拙,传统的这些操作,即费时又费力,而且容易出错,工作效率较低,并且不管统计、评估还是管理工作合理性都不好。因此,拥有一套实用、高效、完善的评估管理软件就显得尤为重要了,它可以提升学校的教育质量和教学管理质量,提高工作效率,降低行政成本。SMART 在线考试系统目的是为中小学生提供在线考试、在线评估的智能化平台,并为学校
10、、主管部门教学评估、教学质量控制提供决策依据。该软件系统内含在线考试评估子系统。本软件产品是一项独立的软件,而且全部内容自含。1.2 课题目的设计一套符合中小学生实际情况、完整统一、技术先进、高效稳定、安全可靠的基于 C/S 架构的智能化的在线考试、在线评估的系统,并为学校、主管部门教学评估、教学质量控制提供决策依据的一个平台。1.3 课题意义作为在中小学生,在线考试系统更趋于公证、客观、针对性,更能激发学生的学习兴趣和热情;作为老师,大大减轻了出卷,阅卷,评卷,以及统计,评估、管理等等工作负担,从而大大提高了工作效率。2 系统实现架构环境与技术说明2.1 系统架构系统在选用结构的时候,有 B
11、/S、C/S、Smart Client(智能客户端)三种可能的方案。它们各有各的优缺点。 B/S 架构B/S 架构的优点在于客户端和服务器通过 Intranet 进行数据交换,客户端基于统一的 WEB 浏览器,减少了投资,解决了系统维护升级的问题,另外只有极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这也就充分保护了数据的安全。虽然如此,B/S 结构还是有很多的不足,其中最大的缺点是在界面操作上具有很大局限性,用起来很难,开发起来也很费钱。 C/S 架构采用 C/S 结构可以减轻服务器运行数据负荷,数据的储存管理也较为透明,最重要的是开发较为迅速
12、。而它的缺点也是不少,它会造成高昂的维护成本,第 2 页 共 29 页且投资大,维护不方便。在实际开发中,部署不如 B/S 方便。但由于它能快速开发出较为使用的用户界面,而且可以将部分运算转移到客户端来,所以是一个值得考虑的方案。 Smart ClientSmart Client 是下一代客户端软件的代表,它可以充分利用终端设备的优势(Full PC、PDA、Phone) 、能够调用 Web Service、支持在线和离线两种状态、能够如同 Web 应用程序一般简单方便的部署。由于这套系统的目标客户是教务处负责排课的老师,因此它不会涉及到对终端设备的支持,但是方便部署这一点确实需要的,因为这正
13、是 C/S 的缺点。2.2 系统实现环境和技术2.2.1 开发环境 集成开发环境: JDK5.0+Eclipse3.1+MyEclipse4.0+Tomcat5.5.15 + SQLServer2000 开发语言: Java、SQL2.2.2 运行环境 服务器操作系统:Windows2000 server 应用服务器系统:tomcat5.0+jre5.0 数据库管理系统:SQL Server 2000 客户端操作系统:Windows 任意版本 客户端浏览器:Microsoft IE5.0 以上2.3 系统框架说明Smart 在线考试项目(以下简称“Smart” ),将在 struts+spri
14、ntg 管理的hibernate 作为平台框架搭建具体的 Smart 在线考试业务系统。采用 struts MVC 框架主要用于将 Smart 的数据流和业务流分开,采用hibernate,主要用于更高效率对数据库存取效率及提高项目开发效率。采用spring 管理的 hibernate 主要主要是获得 Spring 对 Hibernate 的支持,获得更高的开发效率和更高的 Hibernate 操作性能。并能获得 Spring 相关的事务支持。之所以不完全用 Spring 框架是考虑项目组的技术水平可能不足以完全驾驭这样的框架规范。所以本系统不属于标准的 Struts + Spring + H
15、ibernate 的标准 J2EE 应用。具体框架版本:Struts 1.2 + hibernate 2.1。对于 Hibernate 的数据库 IO 操作,将采用 DAO 模式将操作封装至 DAO 对象中。而将建立专门的业务层,对 WEB 层及其他子模块或类进行接口。第 3 页 共 29 页2.3.1 struts 介绍The Jakarta Struts 项目是由 Apache Software Foundation 发起的开源项目,它在 java 服务器端实现了 MVC(Model-View-Controller)设计模式。The Jakarta Struts 项目最初是由 Craig
16、McClanahan 在 2000 年五月创建的,但后来被开源组织所接收。The Jakarta Struts 作为一个开源框架的主要意图是为了在创建 WEB 应用时能比较容易的分离表示层和业务数据层。自从它诞生以来收到大量开发人员的支持,并很快的成为开源社区中一个重要的成员。图 2-1 Web 层及其他子模块层Struts 最早作为 Apache Jakarta 项目的组成部分问世。这个名字来源于在建筑和旧式飞机中使用的支持金属架。它产生的目的是为了帮助开发者减少运用 MVC 设计模式来开发 Web 应用的时间。Struts 框架是基于 JAVA 技术的,开发人员通过 Struts 框架可以
17、充分利用代码重用和“一次编写、到处运行”的优点。它提供了一种创建 Web 应用程序的框架,其中对应用程序的显示、表示和数据的后台代码进行了抽象。Struts 是一个比较好的 MVC 框架,继承了 MVC 的各项特性,并根据 J2EE的特点,做了相应的变化和扩展。它采用的主要技术是 Servlet,JSP 和 tag library。Struts 架构是围绕一个 Action Mapping 把 HTTP 消息形式的用户请求转换成应用程序的动作。Action Mapping 创建了一个 Action 对象来处理请求。一旦 Action 对象完成了一个任务,它就通过在一个 JSP 页面上写结果来直
18、接回应一个用户请求,或者它可以让一个引用程序流动到其他地方做回应。数据库Hibernate 平台DAO 类(被 Spring 管理) Spring 平台业务层(Service 类)WEB(Action、page)第 4 页 共 29 页Struts 作为一个 MVC 的框架,对 Model、View 和 Controller 都提供了响应的实现组件,对此分别做介绍,并且看看他们是如何结合在一起的。Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端,在 Struts 中由 ActionServlet 和ActionMapping 对象组成
19、。Model:struts 为 Model 部分提供了 Action 和 ActionForm 对象。Struts建议在实现是把“做什么”(Action)和“如何做”(业务逻辑)分离。View:Struts 应用中的 View 部分是通过 JSP 技术实现的。Struts 提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的 Model 部分交互,通过使用这些自定义表创建的 JSP 表单,可以实现和 Model 部分中的ActionForm 的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。在这章节,我们简要的画出一幅和 MVC 模式对应的 ST
20、RUTS 框架图 2-2:视图 view1模型 moduleView2Action ServletAction1Action4Action3Action2图 2-2 struts 框架图图 2-2 是 Struts 框架下应用程序请求流通过的路径。这个处理过程由 5 个基本的步骤组成。下面是处理步骤的描述。1由显示视图产生一个请求。2请求被 ActionServlet(控制器)接收,它在 struts-config.xml文件中寻找请求的 URI,找到对应的 Action 类后,Action 类执行相应的业务逻辑。3Action 类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的
21、。第 5 页 共 29 页4 一旦 Action 类处理完业务逻辑,它把控制权返回给ActionServlet。,Action 类提供一个键值作为返回的一部分,它指明了处理的结果。ActionServlet 使用这个键值来决定在什么视图中显示 Action的类处理结果。5 当 ActionServlet 把 Action 类的处理结果传送到指定的视图中,请求的过程也就完成了。2.3.2 理解 MVC 设计模式为了更深刻的理解 Struts 框架,你必须先理解 MVC 设计模式,Struts 技术就是基于 MVC 设计模式的。MVC 设计模式起源于 Smalltalk 语言,它由以下三个部分组成
22、:模型(model),视图(view),控制器(Controller)。表2.1 定义了这些组件。表 2-1 Mvc 组件表组件 描述模型(model) 封装数据对象。模型用来封装和显示数据对象。视图(view) 作为模型的显示,它表示数据对象的当前状态控制器(Controller)定义对用户的输入执行相应操作的接口,它用来操作模型(model)和数据对象使用 MVC 的好处包括如下:可靠性:表示层和业务层别分离,这样就允许你更改你的表示层代码而不用重新编译你的模型(model)和控制器(Controller)代码。高重用和可适应性: MVC 模式允许你使用各种不同样式的视图来访问同一个服务器
23、端的代码。它包括任何 WEB(HTTP)浏览器或则无线浏览器(WAP)。较低的生命周期成本:MVC 使降低开发和维护用户接口的技术含量成为可能。快速的部署:开发时间会得到相当大的缩减,它使程序员(java 开发人员)集中精力于业务逻辑,界面程序员(HTML 和 JSP 开发人员)集中精力于表现形式上。 可维护性: 分离表示层和业务逻辑层也使得基于 Struts 的 Web 应用更易于维护和修改。第 6 页 共 29 页2.3.3 spring 介绍根据 Spring 的官方网站描述, “Spring 是一种多层的 J2EE 应用程序框架,它是以 Rod Johnson 编著的 Expert O
24、ne-on-One J2EE Design and Development书的代码为基础发展而来的。 ”Spring 的核心,提供一种新的机制来管理业务对象及其依赖关系。例如,利用 loC(反转控制),你可以指定一个 DAO(Data Access Object,数据访问对象)类依赖一个 DataSource 类。它也允许开发人员通过接口编程,使用 xml 文件来简单的定义其实现。Spring 有很多类用来支持其它的框架(如 Hibernate 和 Struts),这使得集成变得易如反掌。Spring 既是全面的又是模块化的。Spring 有分层的体系结构,这意味着你能选择仅仅使用它任何一个独
25、立的部分,而它的架构又是内部一致。因此你能从你的学习中,得到最大的价值。例如,你可能选择仅仅使用 Spring 来简单化JDBC 的使用,或用来管理所有的业务对象。它的设计从一开始就是要帮助你编写易于测试的代码。Spring 是使用测试驱动开发的工程的理想框架。 2.3.4 hibernate 组件介绍Hibernate 是一个免费的开源 Java 包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通 Java 对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中) 。它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何
26、找到它们。大多数应用程序都需要处理数据。Java 应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。这类工具有很多,从昂贵的商业产品到内置于 J2EE 中的 EJB 标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复
27、杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而 Hibernate 就是这样的一个例子。第 7 页 共 29 页2.3.5 jsp 组件介绍在传统的 HTML 文件中假如 JAVA 程序片段和 JSP 标签,就构成了 JSP 网页。JAVA 程序片段可以操作数据库、重定向网页以及发送 E-MAIL 等,实现建立动态望站所需要的功能。所有程序操作都在服务器端执行,网络上传送给用户端的仅仅为输出结果。JSP 技术大大降低了对用户浏览器的要求,即使用户浏览器端不支持 Java,也可以访问 JSP
28、网页。当 JSP 容器接受到 WEB 用户的一个 JSP 文件请求时,它对 JSP 文件进行语法分析并生成 JAVA Servlet 源文件,然后对其进行编译。一般情况下,Servlet 源文件的生成和编译仅在初次调用 JSP 时发生。如果原始的 JSP 文件被更新了,JSP 容器将检测所做的更新,在执行他之前重新生成 Servlet 并惊醒编译。下图显示了 JSP 容器初次执行 JSP 的过程:尽管 JSP 在本质上是Servlet,但这两者的创建方式不一样。Servelet 完全由 java 程序代码构成,擅长于流程控制和事务处理,而通过 Servlet 来生成动态网页很不直观;JSP由
29、HTML 代码和 JSP 标签构成可以方便的编写动态网页。因此在实际应用中,采用 Servlet 来控制业务流程,而采用 JSP 来生成动态网页。在 Struts 框架中,JSP 位于 MVC 设计模式的视图层,而 Servlet 位于控制层。浏览器JSP 容器JSP 文件生成 Servlet 源代码经编译的 Servlet 类请求响应图 2-3 JSP 容器初次执行 JSP 的过程2.3.6 SQL Server 2000 介绍Server 是一个关系数据库管理系统,它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的。SQL Server 2000 是Mi
30、crosoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。SQL Server 不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer 数据库处理第 8 页 共 29 页的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQL Server 的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server 的所有功能,都可以基于系统已经建立好的一些对象来达成
31、,是相当OO(面向对象)的一个系统结构。SQL Server 企业管理器是 SQL Server 的主要管理工具,它提供了一个遵从MMC 标准的用户界面,使用户得以: 定义 SQL Server 实例组。 将个别服务器注册到组中。 为每个已注册的服务器配置所有 SQL Server 选项。 在每个已注册的服务器中创建并管理所有 SQL Server 数据库、对象、登录、用户和权限。 在每个已注册的服务器上定义并执行所有 SQL Server 管理任务。 通过唤醒调用 SQL 查询分析器,交互地设计并测试 SQL 语句、批处理和脚本。 唤醒调用为 SQL Server 定义的各种向导。2.3.7
32、 Tomcat 介绍Tomcat 是是基于 JAVA 的开源 WEB 应用服务器, Tomcat 是一个免费的开源的 Serlvet 容器,它是 Apache 基金会的 Jakarta 项目中的一个核心项目,由Apache,Sun 和其它一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 Jsp 规范总能在 Tomcat 中得到体现。Tomcat 被JavaWorld 杂志的编辑选为 2001 年度最具创新的 java 产品,可见其在业界的地位。 由于 Java 的跨平台特性,基于 Java 的 Tomcat 也具有跨平台性。 与传统的桌面应用程序不同,To
33、mcat 中的应用程序是一个 WAR(Web Archive)文件。WAR 是 Sun 提出的一种 Web 应用程序格式,与 JAR 类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有 Html和 Jsp 文件或者包含这两种文件的目录,另外还会有一个 WEB-INF 目录,这个目录很重要。通常在 WEB-INF 目录下有一个 web.xml 文件和一个 classes 目录,web.xml 是这个应用的配置文件,而 classes 目录下则包含编译好的 Servlet类和 Jsp 或 Servlet 所依赖的其它类(如 JavaBean)。通常这些所依赖的
34、类也可以打包成 JAR 放到 WEB-INF 下的 lib 目录下,当然也可以放到系统的CLASSPATH 中,但那样移植和管理起来不方便。 在 Tomcat 中,应用程序的部署很简单,你只需将你的 WAR 放到 Tomcat 的 webapp 目录下,Tomcat 会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的 Jsp 时,通常第一第 9 页 共 29 页次会很慢,因为 Tomcat 要将 Jsp 转化为 Servlet 文件,然后编译。编译以后,访问将会很快。另外 Tomcat 也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个 xml 文
35、件中。通过这个应用,辅助于Ftp,你可以在远程通过 Web 部署和撤销应用。当然本地也可以。3 功能需求分析3.1 功能需求3.1.1 公共资源管理公共资源管理模块涉及到省、市、县/区、乡/镇、村、学校、年级、班级等基本信息的设置(其中乡/镇、村是动态的,用户可以根据具体情况设置或者不设置) 。用户可通过它实现添加、删除、修改省、市、县/区、乡/镇、村、学校、年级、班级的基本信息。3.1.2 教务资源管理教务资源管理具体包括课程设置,教科书设置,章节设置,知识点设置。用户可以对课程,教科书,章节,知识点等进行添加,删除,修改等操作。还可以对知识点进行搜索,针对哪一个年级,哪一个课程,哪一个章节
36、进行搜索。3.1.3 试题资源管理试题资源管理主要是对题目类型,答案类型,难度系数进行设置,用户可以对题目类型,答案类型,难度系数进行添加,删除,修改等操作。由于三个类型的数据相似,所以这三个类型的数据放在“code 代码”一张表中。3.1.4 试卷资源管理试卷资源管理负责管理考试类型和试卷类型的基本信息。用户可通过它实现考试类型以及试卷类型的添加,删除,修改等操作。3.2 非功能需求 包容性和可扩展性系统应具有较好的可扩展性和包容性。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资。特别是在应用需求变化时(应用与系统的需求往往提不全或者经常会变化),有一个
37、较好的应用平台,能容易地加以调整。系统易于扩充升级,既能满足当前业务的需求,又为今后的扩充留有空间。 系统简洁,易使用、易维护、适用非计算机专业人员使用在线考试系统的设计符合一般考试系统的需求,功能完备实用,简单易学,第 10 页 共 29 页界面友好清晰,易于扩展。考虑到考试的复杂性,系统的设计需要考虑用户的计算机水平,做到简单易用,没有计算机专业背景的用户也可以轻松的使用本系统完成复杂的排课工作。 设计的合理性省、市、县/区、乡/镇、村、学校、年级、班级这个级别的等级是逐渐递减的,但是乡/镇和村的设置是根据用户的具体情况可以设置,也可以不设置,不能出现等级的错位(比如:学校的下个级别是市区
38、设置等) ,否则会影响整个系统的功能实现,还有课程要跟老师以及年级对应起来。这样哪一个年级的哪一门课程就跟老师对应起来。知识点要跟课程和章节对应起来。 充分保护数据的一致性在线考试系统所使用的数据来源于教务管理系统中的省级信息、市级信息、县/区信息、乡/镇信息、村级信息、学校信息、年级信息、班级信息、课程信息、教科书信息、章节信息、知识点信息、题目类型、难度类型、答案类型、考试类型信息、试卷类型信息等多种信息。各信息存在着一定的关联关系。在线考试系统所使用的信息需要数据的高度一致,因此,非常有必要在设计时将数据的一致性作为一个重点来考虑。 采用先进成熟的技术,建立实用可靠的系统本系统的建设目标
39、是否能实现,系统整个投资能否发挥应有的效益,最终将取决于该系统是否可靠实用。为此,系统应采用成熟可靠的技术,应贯彻产品化的设计原则和实施方法。同时,系统的起点要高,而不是基于淘汰的技术,系统的建立应适应未来技术发展的趋势。4 数据库设计在前一版本的开发工程中,数据库的个别地方在设计上存在着一些缺陷,使得软件在开发过程中遇到了一些本可以避免的问题,因此新版本的数据库在设计上进行了适当的优化。Smart 系统公共资源管理所使用到的所有表,一共有 14 张。分别是:1 CODE 表 存储题目类型,答案类型,试卷类型等等的信息。表 4-1 “CODE”表“CODE”表 code字段名称 数据类型 是否
40、是主键 是否是外键 是否可 NULL 备注Code_id UNIQUEIDENTIFIER YES NO NO 主键code-type VARCHAR(50) NO NO NO 类型第 11 页 共 29 页code_name VARCHAR(20) NO NO NO存放具体的名字code_value VARCHAR(50) NO NO NO 存放值code_module VARCHAR(50) NO NO YES 组件remark VARCHAR(100) NO NO YES 描述2 smart_book_publishing_company 表 存储书本信息表 4-2 “书本”表“书本”表
41、 smart_book_publishing_company字段名称 数据类型 是否是主键 是否是外键 是否可 NULL 备注Book_no UNIQUEIDENTIFIER YES NO NO 主键Book_name VARCHAR(50) NO NO NO 书的名字ref_course_no VARCHAR(20) NO NO NO 课程的 Idcompany_name VARCHAR(50) NO NO NO 公司的名字remark VARCHAR(50) NO NO YES 描述record_number VARCHAR(100) NO NO YES 版本号码3 smart_provi
42、nce 表 存储省相关信息表 4-3“省信息”表“省信息”表 smart_province字段名称 数据类型 是否是主键 是否是外键 是否可 NULL 备注province_id UNIQUEIDENTIFIER YES NO NO 主键province_name VARCHAR(50) NO NO NO书的名字province_no VARCHAR(20) NO NO NO 课程的 Idlastclass_no VARCHAR(50) NO NO NO 公司的名字remark VARCHAR(50) NO NO YES 描述record_number VARCHAR(100) NO NO Y
43、ES版本号码length Bigint NO NO YES 省的编号的长度ruleclass_name VARCHAR(50) NO NO YES这个级别的设置名称lastname VARCHAR(50) NO NO YES 上个级别的名字nextName VARCHAR(50) NO NO YES下个级别的名字(如:市级设置)其他表包括市,县/区,乡/镇,村,学校,年级,班级表跟此表雷同,这里就不再叙述。4 smart_course 表 存储课程相关信息表 4-4 “课程”表第 12 页 共 29 页“课程”表 smart_course字段名称 数据类型 是否是主键 是否是外键 是否可 NU
44、LL 备注course_no UNIQUEIDENTIFIER YES NO NO全局唯一码(主键)course_name VARCHAR(50) NO NO NO课程的名字Course_teacher VARCHAR(20) NO NO NO课程的老师Section_count INT NO NO NO章节号remark VARCHAR(50) NO NO YES 描述grade_id UNIQUEIDENTIFIER NO YES YES 年级 id5 smart_examtype 表 存储考试类型信息表 4-5 “考试类型”表“考试类型”表 smart_examtype字段名称 数据类型
45、 是否是主键 是否是外键 是否可 NULL 备注examtype_no UNIQUEIDENTIFIER YES NO NO全局唯一码(主键)examtype_name VARCHAR(50) NO NO NO考试类型的名字Examtype_year VARCHAR(20) NO NO NO 学年Examtype_term INT NO NO NO 学期remark VARCHAR(50) NO NO YES 描述Record_number INT NO NO YES 版本号Examtype_code VARCHAR(50) NO NO YES标志(设置为无)6 smart_section 表
46、 存储章节相关的信息表 表 4-6“章节”表“章节”表 smart_section字段名称 数据类型 是否是主键 是否是外键 是否可 NULL 备注section_no UNIQUEIDENTIFIER YES NO NO全局唯一码(主键)section_name VARCHAR(50) NO NO NO 章节的名字section_rank VARCHAR(20) NO NO NO章节的编号(如:第一章节)real_grade_id INT NO NO NO年级的 Id第 13 页 共 29 页remark VARCHAR(50) NO NO YES 描述course_no UNIQUEIDE
47、NTIFIER NO YES NO 课程的 IDbook_no UNIQUEIDENTIFIER NO YES NO 书本的 IDRecord_number VARCHAR(50) NO NO YES版本号7 smart_knowledge_point 表 存储知识点相关信息表 4-7“知识点”表“知识点”表 smart_knowledge_point字段名称 数据类型 是否是主键 是否是外键 是否可 NULL 备注knowledge _no UNIQUEIDENTIFIER YES NO NO全局唯一码(主键)knowledge _name VARCHAR(50) NO NO NO知识点的名
48、字section_no VARCHAR(20) NO NO NO 章节的 Idreal_grade_id INT NO NO NO年级的 Idremark VARCHAR(50) NO NO YES 描述Record_number VARCHAR(50) NO NO YES版本号5 系统模块的设计与实现5.1 系统模块的设计5.1.1 公共资源管理模块设计在系统的公共资源管理模块中,我们设定了八级的关系(包括:省级设置、市级设置、县/区设置、乡/镇设置、村级设置、学校设置、年级设置、班级设置)其中他们的关系是一级一级向下的。也就是只有设置了上一级别,下一个级别才能设置(其中乡/镇设置、村级设置
49、可以根据具体情况可以设置或者不设置)。在这个设计中,开始的时候系统会自动跳出省级的设置选项,用户只有添加了省信息后(如:四川省)之后才能进一步的设置市级的信息(如:成都市),当用户设置了省市后(如:四川省成都市),就进入县/区设置,这个时候用户要添加具体的县/区时候,它对应的下一个级别会有俩个选择(如:学校设置和乡/镇设置),这时候用户可以根据具体的情况做出选择是设置学校还是设置乡/镇(如:四川省成都市双流县一中或者四川省成都市双流县金花镇)。同样的道理,如果用户设置了乡/镇,它的下一级别同样有俩个选择(如:学校设置和村级设置),用户同样根据具体的情况下级别设置学校还是村级设置(如:四川第 14 页 共 29 页省成都市双流县金花镇中心小学或则四川省成都市双流县金花镇金花村),最后用户选择的是学校对应的年级和班级。各个级别的关系是通过编号(NO)来联系的,就是下一级别的(NO)是上个级别的编号(NO)加上用户自己输入的编号。比如:成都市编号:11112222(数据库中)。那么如果用户定义双流县的编号是:3333。那么我们保存双流县信息的时候是把成都市的编号:11112222,加上用户输入编号:3333。最终保存到数据库中的双流县编号就是:1111222