软件工程. 2 系 统 设 计 2.1 系统功能模块划分 本系统是一个简单的文章采集系统通过 6.1.1 节的系统功能需求分析可以将系统细分为几个模块:栏目管理模块、项目管理模块、历史记录模块和数据采集模块 4 个模块. 1.栏目管理模块 录入栏目的名称、描述等信息.录入第一条记录后系统会自动进入栏目管理主界面以便查看录入的信息是否正确.同时可以从栏目管理界面直接进入修改或删除栏目界面整个操作简单方便避免了许多错误的发生. 2.项目管理模块 项目管理模块和栏目管理模块一样也包括录入、修改和删除 3 个功能. 录入项目功能共分 6 步完成包括基本设置、列表设置、链接设置、标题/内容设置、采样测试和属性设置. 基本设置包括项目的名称、所属栏目、采集网站地址. 列表设置包括设置截取列表的开始代码和结束代码以及列表的处理类型. 链接设置包括设置截取列表的开始代码和结束代码. 标题/内容设置包括设置截取标题的开始代码和结束代码以及截取内容的开始代码和结束代码. 采样测试是检验前面的设置是否正确.如果正确就会显示正确的标题内容和正文内容.否则需要返回重新设置. 属性设置是设置项目的其他信息. 编辑项目功能和录入项目功能一样也分 6 步. 3.历史记录模块 历史记录模块包括查看全部历史记录、成功历史记录和失败历史记录以及删除历史记录等功能. 4.数据采集模块 数据采集模块是本系统的核心模块通过该模块可以完成采集功能. 2.2 系统结构设计 根据 2.1 节的系统设计可以得到如图 6-11 所示的系统结构设计图. 图 11 系统结构设计图 这就是本系统提供的所有功能.当然一个功能完善的采集系统还包括很多功能例如过滤设置、数据库导入/导出等.本示例系统提供的是一个模板在此基础上可以很方便地扩充其他功能 3 数据库设计 数据库在动态程序中有着非常重要的地位数据库结构设计的好坏将直接对应用系统的效率及实现的效果产生影响.合理的数据库结构设计可以提高数据存储的效率保证数据的完整和一致. 设计数据库系统时应该首先充分了解用户各个方面的需求包括现有的及将来可能增加的需求. 3.1 数据库逻辑设计 前面已经详细地分析了该系统所要完成的功能因此在前面的功能清单的基础上可以很轻松地设计出本示例所需要的数据库系统. 本系统的数据结构比较简单从分析功能清单可以知道需要存储的是栏目信息、项目信息、历史记录信息、采集的文章信息. 栏目信息需要保存栏目 ID、栏目名称和栏目描述. 项目信息需要保存项目 ID、项目名称、一级栏目 ID、二级栏目 ID、网站名称、网站网址、列表索引页面、截取列表开始标记、截取列表结束标记、截取链接开始标记、截取链接结束标记、截取标题开始标记、截取标题结束标记、截取正文开始标记、截取正文结束标记及采集时间.如果采集类型为批量采集还需要列表分页类型、列表分页批量类型列表索引页面、索引范围开始及索引范围结束.最后还需要一些文章的属性内容.本系统只使用编辑和内容评分. 历史记录需要保存历史 ID、项目 ID、一级栏目 ID、二级栏目 ID、文章 ID、文章标题、采集时间、采集文章的源地址及是否成功标记. 文章信息需要保存文章 ID、一级栏目 ID、二级栏目 ID、文章标题、文章内容及采集时间等基本内容.如果需要保存其他信息还需要设计其他字段.本系统增加了编辑和文章评分两个字段. 在上面的数据库逻辑设计中列出了各个表的字段各表的主键信息通过各表中的字段就可以看出例如文章 ID 在文章信息、历史记录中都有出现应设为文章信息的主键. 3.2 数据库设计 由于本系统所需的数据结构比较简单而且数据量也不大因此采用 Access 数据库作为数据库设计工具.本章将具体介绍各字段、数据类型等内容. 根据上面的数据库逻辑设计需要设计 4 张数据表.由于栏目信息包括一级栏目信息和二级栏目信息因此需要两张表来存储栏目信息这样本系统设计了 5 张数据表. Channel 表保存一级栏目信息Class 表保存二级栏目信息Project 表保存项目信息History 表保存历史记录信息Info 表保存文章信息. 1.Channel 表和 Class 表 Channel 表和 Class 表都包括 3 个字段:一个是用以标志栏目唯一性的 ChannelID/ ClassID 字段数据类型采用自动编号同时该字段也是 Channel/Class 表的主键一个是栏目的名称字段ChannelName/ClassName数据类型为文本类型另一个是栏目的描述字段 ChannelInfo/ClassInfo数据类型为文本类型. 2.Project 表 Project 表包括的字段比较多如图 12 所示.其中每个字段所代表的含义可以从图中的说明中看到.ProjectID 为该表主键. 图 12 Project 表 3.History 表 History 表用于保存历史记录。
4.Info 表 此外还有一个 Info 表用于保存采集的内容信息所有字段如图 14 所示. 图 14 Info 表 文章采集系统采集的内容是为文章管理系统服务的而且 Info 表、Channel 表和 Class 表是文章管理系统需要的数据表因此把它们单独保存在数据库 Info 中.History 表和 Project 表是采集系统的数据表因此把它们保存在数据库 History 中. 4 系统通用功能模块设计 在程序设计过程中有许多功能需要经常使用比如分页的功能、错误显示功能等.在编程的时候就需要把它们提取出来作为单独函数以方便调用.这些函数就是通用功能模块.这也是一种良好的编程习惯. 4.1 系统文件结构 为方便以后的描述在这里将本系统的文件结构列出来如表 1 所示. 表1 系统文件结构 表 1 中所属目录quot/quot表示系统根目录因此quot/cssquot表示根目录下的 css 文件夹同理quot/incquot表示根目录下的 inc 文件夹. 4.2 数据库连接文件 文件 conn.asp 主要提供连接数据库的方法.下面主要介绍实现这些方法的代码. 在数据库设计中设计了两个数据库一个是保存项目信息和历史记录信息的项目数据库 history.mdb另一个是保存栏目信息和内容信息的内容数据库 info.mdb.因此设计了两个连接数据库对象:conn、connhistory. 定义和初始化连接 info 数据库字符串、info 数据库连接对象和 info 数据库路径字符串变量参考代码见例程 1. 例程 1 定义和初始化连接 info 数据库变量 dim connstr dim db dim Conn dbquotdata/info.mdbquot Set Conn Server.CreateObjectquotADODB.Connectionquot connstrquotProviderMicrosoft.Jet.OLEDB.4.0Data Sourcequot amp Server.MapPathdb 连接 info 数据库并显示出错报告参考代码见例程 6-2. 例程 2 连接 info 数据库 Conn.Open connstr If Err Then err.Clear Set Conn Nothing Response.Write quot数据库连接出错请检查连接字符串.quot Response.End End If 关闭内容数据库对象函数参考代码见例程 3. 例程 3 关闭 info 数据库对象函数 Sub CloseConn 关闭数据库 Conn.close set Connnothing End sub 定义和初始化连接项目数据库字符串、项目数据库连接对象和项目数据库路径字符串变量参考代码见例程 4. 例程 4 定义和初始化连接 history 数据库变量 dim connstrHistory dim dbHistory dim connHistory dbHistoryquotdata/history.mdbquot 采集数据库文件的记录 Set connHistory Server.CreateObjectquotADODB.Connectionquot connstrHistoryquotProviderMicrosoft.Jet.OLEDB.4.0Data Sourcequot ampServer.MapPathdbHistory 连接项目数据库并显示出错报告参考代码见例程 5. 例程 5 连接 history 数据库 connHistory.Open connstrHistory If Err Then err.Clear Set connstrHistory Nothing Response.Write quot采
上一篇:
3通达OA疑难解答
下一篇:
法律专业开题报告范文