.
1.2.3 主要功能模块
本文重点讨论用户查询模块.用户查询模块由以下几个功能子模块构成.
1)中草药资源模块.该模块主要是为用户提供中草药的一些基本信息,包括2个子模块:a)中草药资源品种查询模块.查询可以按中草药的中文名、拉丁学名、主治功效等项进行单项检索,也可以进行其它任意组合条件的查询;b)中草药生物学特征查询模块.用户可根据中草药名称完成中草药生育期、光照、温度、开花期、果实成熟期、生长习性、土壤等数据查询.
2)中草药种植模块.该模块主要为药农提供中草药栽培技术、采集加工及炮制方法,包括2个子模块:a)栽培技术查询模块.介绍相关中草药栽培与种植技术.
从中草药的品种选择、土壤要求、栽培时期及种植方法等方面为用户提供指导;b)中草药的加工方法的查询模块.介绍相关中草药的采集、加工炮制方法.从采集时间、采集方法、炮制方法、工艺、标准、设备等方面给用户提供指导.
3
)病虫害防治模块.该模块主要是为药农及病虫害研究相关人员提供病害相关信息的查询,包括2个子模块:a)虫害防治模块.具体包括虫害的发生时期、表现症状、害虫的生活史、图谱及虫害防治措施;b)病害防治模块.具体包括病害的发生时期、表现症状、病原体的生活史、图谱及相应的病害防治措施.
4)图片浏览及查询模块.该模块完成对中草药图片的全部或分类浏览,并实现图片与相关中草药对象及相关病虫害对象的详细信息连接,为用户了解中草药及相关病虫害提供直观信息.
2 数据库设计
数据库设计是信息系统的核心和基础,设计结构合理、功能齐全的数据库有助于提高数据库应用
程序的性能[4]
.该系统数据标准均参照植物种质资源共性描述规范[5-6],并结合中草药生物学知识,在
设计窗口中创建7个表:中草药资源信息表、中草药生物学特征表、中草药种植表、虫害防治表、病害防治表、图片资源表、用户信息表.每一个表都是一些特定实体的数据集合.主要数据表的结构见表1~表4.
表1 中草药资源信息表
序号字段名类型说明1zcyIDInt(4)中草药ID2zcymcNvarchar(50)中草药名称3ldwmnvarchar(200)拉丁文名称4zcybmnvarchar(400)中草药别名5ksnvarchar(100)中草药科属6
zzjbnvarchar(2000)主治疾病7yclbnvarchar(2)中药材类别8gnzynvarchar(2000)功能作用9ylzyNvarchar(50)药理作用10ycmsnvarchar(1000)药材描述11
zycf
nvarchar(500)
主要成分
表2 中草药种植信息表
序号字段名类型说明1zcyIDInt(4)中草药ID2zcymcnvarchar(50)中草药名称3xdzdnvarchar(2000)选地整地4bzqnvarchar(2000)播种期3mqjsnvarchar(2000)苗期技术4tjglnvarchar(2000)田间管理技术5zzjsnvarchar(2000)种植技术6csjsnvarchar(2000)采收技术7jgjsnvarchar(2000)加工技术8
yccc
nvarchar(500)
药材存储
第3期 盛 魁:基于.NET框架的中草药资源信息系统的构建
85
表3 中草药病害信息表
序号字段名类型说明1zcyIDInt(4)中草药ID2bhmcnvarchar(200)病害名称3bhtpnvarchar(400)病害图谱4shsnvarchar(100)生活史5bhzznvarchar(2000)
病害症状6bhtpimage病害图片7
fzcs
nvarchar(50)
防治措施
表4 用户信息表
序号字段名类型说明1yhIDvarchar(50)用户ID2yhmnvarchar(50)用户名3yhklnvarchar(200)用户口令4yhqxnvarchar(400)用户权限5yhxmnvarchar(100)用户姓名6
yhjb
nvarchar(2000)
级别
3 关键技术分析
3?1 用户权限的动态控制
由于系统采用B/S模式,系统的安全性非常重要.
为了提高数据的安全性和适应中草药资源管理的需要,系统采用XML的动态用户控制用户权
限[7]
,在XML文档中,对各个用户组的访问控制权
限进行了精确的控制,根据当前用户的权限配置,确定当前用户的级别,并允许用户进行相应的操作.如超级用户具有增加新用户以及对中草药信息进行删除、修改、添加、检索等功能,而一般用户只能进行信息浏览、检索功能.ASP.NET中具体实现是通过修改Web.Config配置文件中<authorization>标记访问授权信息来实现的,Web.Config中的<authoriza?tion>标记使用<allow>和<deny>子标记来实现配置访问控制权限.以下是实现该配置的标记代码:
<authorization>
<allowusers="一般用户"/><denyusers="?"/>
<allowusers="超级用户"/><denyusers="一般用户"/></authorization>3?2 图片储存和处理
为了保证图片信息的安全性和可靠性,防止用户非法获取图片,本文中图片处理采取存储在数据库表中的方式.即先将图片文件信息转换成二进制数据类型,再把图片数据存储在数据库中,这种方法虽编程复杂,但操作简单、较安全、管理便利,比如备
份数据同时也会把图片备份[8].主要代码如下:
intImageSize=zwImage.PostedFile.ContentLe?ngth‘获取图片大小’
strImageType=zwImage.PostedFile.Content?
Type
‘获取图片类型’ImageStream=zwImage.PostedFile.InputStream‘读取图片信息’