目录
一、选题
博物馆藏品管理系统: 通过建立网上存储信息,第一可以实现足不出户浏览博物馆,第二可以用信息化的手段保存文物,相当于另一种延续,第三可以设置和查询展览,为博物馆管理员和游客给予便利。
二、需求分析
2.1数据库系统的业务描述
用户类别:博物馆管理员、参观者(一般用户)
主要功能:
①、藏品入库:藏品名称、类别、等级、详情、实物图片等信息都将生成标签信息并登记到入库记录中。
②、展览安排:记录展厅名、展厅面积、藏品类别、展览时间等信息。
③、事故记录:记录藏品受损发生日期、相关负责人、受损详情、处理结果等,存入受损记录中。
④、维修记录:记录藏品维修时间 、修复负责人 、修复时间、修复详情等。
⑤、系统限制:按照用户类别进行区分,管理员为A类用户,登录后可实现各种操作,参观者为B类用户,仅可进行文物、展览的查看及查询操作,以及使用文物管理模块的“文物鉴赏”功能欣赏相关文物,而无法进行添加、修改和删除等操作。
2.2主要逻辑业务
藏品入库:管理员将包括藏品名称、类别、等级、详情、实物图片等信息的藏品记录进行登记添加,系统会自动生成藏品入库信息记录,记录藏品入库对应的操作人及操作时间。
文物鉴赏:主要为参观者(一般用户)提供,可供参观者对系列文物进行鉴赏,了解更多关于文物的知识。
2.3 数据字典
- 数据项
数据项名:userid
数据项含义:唯一标识用户身份
定 义:userid=Int()
位 置:用户信息
数据项名:userName
数据项含义:用户姓名信息
定 义:userName=10{文本字符}10
位 置:用户信息,存放记录,修复记录,事故记录
数据项名:Password
数据项含义:用于登陆账号验证身份
定 义:Password=20{文本字符}20
位 置:用户信息
数据项名:usertype
数据项含义:用户类别,区分管理员和游客
定 义:usertype={A,B}
位 置:用户信息
数据项名:typeid
数据项含义:类别id
定 义:typeid=Int()
位 置:藏品类别
数据项名:bookTypeName
数据项含义:类别名
定 义:bookTypeName=10{文本字符}10
位 置:藏品类别,藏品信息,展览信息
数据项名:bookTypeDesc
数据项含义:类别详情
定 义:bookTypeDesc=10{文本字符}10
位 置:藏品类别
数据项名:oldid
数据项含义:藏品id
定 义:oldid=Int()
位 置:藏品信息,存放记录,修复记录,事故记录
数据项名:oldname
数据项含义:藏品名称
定 义:oldname=50{文本字符}50
位 置:藏品信息,存放记录,修复记录,事故记录
数据项名:oldpicture
数据项含义:藏品图片
定 义:oldpicture=50{文本字符}50
位 置:藏品信息
数据项名:roomid
数据项含义:展厅编号
定 义:roomid=Int()
位 置:展览信息
数据项名:area
数据项含义:面积
定 义:area=Int()
位 置:展览信息
数据项名:roomname
数据项含义:展厅名
定 义:roomname=50{文本字符}50
位 置:展览信息
数据项名:showtime
数据项含义:展览时间
定 义:showtime=50{文本字符}50
位 置:展览信息
数据项名:storeid
数据项含义:存放记录编号
定 义:storeid=10{数字字符}10
位 置:存放信息
数据项名:storetime
数据项含义:存放时间
定 义:storetime=10{文字字符}10
位 置:存放信息
数据项名:repairid
数据项含义:修复记录编号
定 义:repairid=10{数字字符}10
位 置:修复信息
数据项名:repairtime
数据项含义:修复时间
定 义:repairtime=10{文本字符}10
位 置:修复信息
数据项名:status
数据项含义:修复状态
定 义:status=20{文本字符}20
位 置:修复信息
数据项名:repairid
数据项含义:修复记录编号
定 义:repairid=10{数字字符}10
位 置:修复信息
数据项名:breakid
数据项含义:破损时间
定 义:breakid=10{文本字符}10
位 置:事故信息
数据项名:breaktime
数据项含义:破损时间
定 义:breaktime=20{文本字符}20
位 置:事故信息
数据项名:result
数据项含义:处理结果
定 义:result=10{文本字符}10
位 置:事故信息
数据项名:breakdesc
数据项含义:破损详情
定 义:breakdesc=20{文本字符}20
位 置:事故信息
- 数据结构
数据结构名称:T_user
含义说明:不同用户身份识别、权限区分
数据组成:账号userid,姓名userName,密码password,用户类别usertype
数据结构名称:T_oldtype
含义说明:藏品类别表
数据组成:类别号typeid,类别名bookTypeName,类别详情bookTypeDesc
数据结构名称:T_old
含义说明:藏品表
数据组成:编号oldid、藏品名称oldname、类型oldtypeid、,藏品类型名oldtypename,详情oldtypedesc图片oldpicture、等级oldgrade
数据结构名称:T_exhibition
含义说明:展厅表
数据组成:编号roomid,面积area,展厅名roomname,藏品类别e_typeid,展览时间showtime
数据结构名称:T_store
含义说明:存放记录表
数据组成:存放记录编号storeid存放人username,藏品编号s_oldid,藏品名称s_oldname,存放时间storetime
数据结构名称:T_repair
含义说明:修复记录表
数据组成:修复记录编号repairid,藏品编号r_oldid,藏品名称r_oldname,修复时间repairtime,修复负责人rhead,修复状态status
数据结构名称:T_break
含义说明:事故记录表
数据组成:事故记录编号breakid,残损发生时间breaktime,藏品编号b_oldid,藏品名称b_oldname,责任人bhead,处理结果result,残损详情breakdesc
(3)
数据流
数据流名称:用户信息表
说 明:用户登录
数据流来源:藏品管理员,游客
数据流去向:藏品管理系统
数 据 组成:User
数据流名称:藏品类别管理
说 明:藏品管理员管理藏品类别
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:oldtype
数据流名称:藏品信息
说 明:藏品管理员增删改查藏品信息
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:old
数据流名称:展厅信息表
说 明:藏品管理员增加和管理展览信息
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:Exhibition
数据流名称:存放记录信息
说 明:藏品管理员存储藏品信息时自动存储
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:store
数据流名称:修复记录信息
说 明:藏品管理员增删改查修复记录信息
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:repair
数据流名称:事故记录信息
说 明:藏品管理员增删改查事故记录信息
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:break
(4)数据存储
数据存储名:藏品表
说 明 :藏品管理员增删改查藏品信息
编 号 :D1
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:old
数 据 量:1000批/次
存 取 频率:50次/天
数据存储名:藏品类别表
说 明 :藏品管理员增删改查藏品类别信息
编 号 :D2
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:oldtype
数 据 量:100批/次
存 取 频率:10次/天
数据存储名:展厅表
说 明 :藏品管理员增删改查展厅信息
编 号 :D3
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:exhibition
数 据 量:10个/次
存 取 频率:10次/天
数据存储名:存放记录表
说 明 :藏品管理员增删改查存放记录信息
编 号 :D4
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:store
数 据 量:100份/次
存 取 频率:30次/天
数据存储名:修复记录表
说 明 :藏品管理员增删改查修复记录信息
编 号 :D5
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:repair
数 据 量:1000批/次
存 取 频率:30次/天
数据存储名:事故记录表
说 明 :藏品管理员增删改查事故记录信息
编 号 :D5
数据流来源:藏品管理员
数据流去向:藏品管理系统
数 据 组成:break
数 据 量:1000批/次
存 取 频率:30次/天
(5)处理过程
处理过程:藏品入库
说明:管理员存入藏品信息
输入:管理员,藏品信息
无输出:
处理:将藏品详细信息记录在藏品信息表中,其中入库操作的信息存入藏品存放记录表中
处理过程:藏品类别录入
说明:管理员存入藏品类别信息
输入:藏品类别信息
无输出:
处理:将藏品类别详细信息记录在藏品类别信息表中
处理过程:藏品修复记录录入
说明:管理员存入藏品修复记录信息
输入:藏品修复记录信息
无输出:
处理:将藏品修复记录详细信息记录在藏品修复记录信息表中
处理过程:藏品事故记录录入
说明:管理员存入藏品事故记录信息
输入:藏品事故修复记录信息
无输出:
处理:将藏品事故记录详细信息记录在藏品事故记录信息表中
处理过程:开设展览
说明:管理员存入展览开设信息
输入:展览开设信息
无输出:
处理:将展览开设信息记录在展览开设信息表中
2.4 数据流图:
藏品录入:藏品管理员收入藏品并在系统中添加藏品详细信息;
藏品类别录入:藏品管理员给藏品分类后,录入藏品的各类别;
藏品修复记录录入:藏品管理员定期检查受损藏品的修复情况,录入受损藏品的修复记录;
藏品事故记录录入:藏品管理员定期检查藏品是否完好,录入发生事故的藏品;
开设展览:博物馆定期开设藏品展览,由藏品管理员录入展览开设信息;
2.5 模块介绍:
藏品管理系统是主系统,分以下几个模块:用户信息管理、藏品信息管理、仓库信息管理、展厅信息管理。
用户信息管理:用户信息记录中包括用户登录模块:检测登录输入的用户名与密码是否匹配。用户权限管理中分为两类用户:藏品管理员、游客,分别有不同的权限。
藏品信息管理:是本系统的核心。藏品信息登记模块:面向管理员,将藏品的基本信息记录到库。藏品受损登记模块:面向管理员,对受损藏品的信息进行登记。藏品修复登记模块:面向管理员,对受损藏品的修复进行追踪,登记藏品的修复信息。藏品入库登记模块:面向管理员,对于登记在库的藏品进行管理。
仓库信息管理:面向管理员和游客,对在馆藏品进行查询;面向管理员,对藏品信息进行增删改操作。
展厅信息管理:面向管理员和游客,对展览信息进行查询;面向管理员,对展厅信息进行增删改操作。
三、概念模型设计(画局部E-R图,再合并画整体E-R图)
四、逻辑结构设计——数据库关系模式
关系模式有:
T_old(oldId,oldName,oldtypeid,oldTypedesc,oldPicture,oldGrade),主键为oldId,外键为oldtypeid,主键和外键之间为参照关系;
T_oldtype(typeId, typeName,typeDesc),主键为typeId;
T_exhibition(roomId ,roomName,area,e_typeid,showTime),主键为roomId,外键e_typeid,主键和外键之间为参照关系;
T_store(storeId, userName, s_oldId, s_oldname, storeTime),主键为storeId,外键s_oldId,主键和外键之间为参照关系;
T_user(userId,userName,password,userType),主键为userId;
T_repair(repairId,repairTime,r_oldId,r_oldname,r_head,status),主键为repairId,外键为r_oldId,主键和外键之间为参照关系;
T_break(breakId,breakTime,b_oldId,b_oldName,b_head,result,breakdesce),主键为breakId,外键为b_oldId,主键和外键之间为参照关系。
关系模式满足范式:
T_old(oldId,oldName,oldtypeid,oldTypedesc,oldPicture,oldGrade),主键为oldId,外键为oldtypeid,满足2NF。
T_oldtype(typeId, typeName,typeDesc),主键为typeId,满足2NF。
T_exhibition(roomId ,roomName,area,e_typeid,showTime),主键为roomId,外键e_typeid,满足2NF。
T_store(storeId, userName, s_oldId, s_oldname, storeTime),主键为storeId,外键s_oldId,满足3NF。
T_user(userId,userName,password,userType),主键为userId,满足3NF。
T_repair(repairId,repairTime,r_oldId,r_oldname,r_head,status),主键为repairId,外键为r_oldId,满足3NF。
T_break(breakId,breakTime,b_oldId,b_oldName,b_head,result,breakdesce),主键为breakId,外键为b_oldId,满足3NF。
对应关系:
T_old(oldId,oldName,oldtypeid,oldTypedesc,oldPicture,oldGrade), 用来存储藏品的各项信息,对应藏品表
T_oldtype(typeId, typeName,typeDesc),用来存储藏品类别,对应藏品类别表
T_exhibition(roomId ,roomName,area,e_typeid,showTime),用来存储展馆各项信息,对应展馆表。
T_store(storeId, userName, s_oldId, s_oldname, storeTime),用来存储藏品入库信息,对应藏品存放表。
T_user(userId,userName,password,userType),用来存储用户信息和数据,分为管理员和普通用户两类。
T_repair(repairId,repairTime,r_oldId,r_oldname,r_head,status),用来存储藏品修复信息,对应藏品修复表。
T_break(breakId,breakTime,b_oldId,b_oldName,b_head,result,breakdesce),用来存储藏品损坏信息,对应藏品损坏表。
根据系统需求分析,实现增添、删除、修改、查询等基础操作。
五、物理结构设计
5.1增添、删除、修改、查询事件的频度分析
增添事件在有藏品状态发生改变时发生。新藏品入库需要添加藏品的各项信息。若新藏品类别不存在,需要添加葬品类别信息。藏品损坏或者修复也需要添加藏品的损坏信息或修复信息。
删除事件在藏品出库时发生,需要删除藏品表中的藏品信息。
修改事件在维护藏品各项信息时发生。当查询到的藏品相关信息有误时,需要对相应错误信息进行修改。
查询信息在管理员或普通用户需要查询藏品相关信息时发生,选择不同功能对不同信息进行检索查询。
5.2索引类型为主键索引
T_old(oldId,oldName,oldtypeid,oldTypedesc,oldPicture,oldGrade) 索引为oldId。
T_oldtype(typeId, typeName,typeDesc) 索引为typeId。
T_exhibition(roomId ,roomName,area,e_typeid,showTime) 索引为roomId。
T_store(storeId, userName, s_oldId, s_oldname, storeTime) 索引为storeId。
T_user(userId,userName,password,userType) 索引为userId。
T_repair(repairId,repairTime,r_oldId,r_oldname,r_head,status) 索引为repairId。
T_break(breakId,breakTime,b_oldId,b_oldName,b_head,result,breakdesce) 索引为breakId。
六、界面设计
登录界面:
主界面:
文物类别管理:
文物管理
展览管理:
文物受损信息管理:
文物修复记录管理:
七、功能实现
由【登陆界面】进入本系统,系统根据用户输入的账号密码与数据库中的用户表对比判断用户的类别。管理员为A类用户,登陆后可实现各种操作,参观者为B类用户,仅可进行文物、展览的查看及查询操作,以及使用文物管理模块的“文物鉴赏”功能欣赏相关文物,而无法进行添加、修改和删除等操作。
用户密码输入完毕后点击“登陆”按钮即可进入系统,若用户账号或密码输入有误,可点击“重置”按钮清空已输入的内容,然后重新进行输入。
“关于作者”功能介绍了本系统的开发由来。
管理员(A类用户)登陆成功后进入到博物馆藏品管理系统主界面,可实现包括“文物类别管理”、“文物管理”、“文物展出管理”、“文物受损记录”、“文物修复记录”、“安全退出”等各种操作。
1、点击“文物类别管理”后可选择“文物类别添加”和“文物类别查询”功能。
“文物类别添加”功能:可增加文物类别的名称及详情。
添加已存在的文物类别名称会报错,提示“添加失败”。
“文物类别查询”功能:点击“查询”按钮即可查询所有文物类别的相关信息。
也可查询指定的文物类别是否存在并查阅其详情。同时可对文物类别名称及其具体描述进行修改和删除操作。
2、点击“文物管理”后可选择“文物添加”、“文物信息查询”、“文物入库信息查询”以及“文物鉴赏”功能
“文物添加”功能:该功能可实现文物名称、文物等级、文物类别名及文物描述的添加。同时下方可点击“上传图片”选择磁盘中存储的图片进行上传。上传完毕后点击添加按钮即可成功添加。
添加文物时文物的“文物类别“不存在于文物类别表则会报错“添加失败”(完整性约束)。
添加成功后,文物添加的操作信息会自动同步到文物入库信息中,点击“文物入库信息查询”即可查询到文物添加的操作人、文物名称及操作时间等信息。也可根据文物的名称查询相应的入库信息。
“文物信息查询”功能:可查询到文物的名称、等级、详情、文物类别等相关信息。点击“查询”按钮即可查询所有文物的相关信息,也可查询指定文物的相关信息。
选定欲删除的记录点击删除按钮可进行删除操作。
选定欲修改的记录并做相应修改后点击修改按钮可进行修改操作。
“文物鉴赏”功能:用户可以查看系统提供的唐代文物、宋代文物、明代文物以及清代文物。
3、点击“文物展出管理”后可选择“添加展览”、 “展览查询”的功能。
“添加展览”功能:添加展览包括展厅名、展厅面积、展厅藏品类别、展厅展览时间等相关信息。其中在插入展览时间时有时间选择器使时间插入更加方便,提高了用户体验同时比起手动输入减低了出错的可能性。
若需要清空输入框的所有内容,点击“重置”按钮即可。
“展览查询”功能:用户可查询所有的展览的相关信息。也可模糊查询欲查询的展览名称以了解更多相关信息。
同时选定欲删除的记录点击删除按钮可进行删除操作。
选定欲修改的记录并做相应修改后点击修改按钮可进行修改操作
4、点击“文物受损记录”后可选择“添加受损详情”、“查询受损详情”功能。
“添加受损详情”功能:可插入包括损坏时间、损坏文物编号、损坏文物名称、文物负责人、处理结果、损坏详情等的受损记录,点击“添加”按钮即可进行添加操作。
若需要清空输入框的所有内容,点击“重置”按钮即可。
“查询受损详情”功能:用户可查询所有的文物受损详情,也可输入部分文物名称模糊查询相关的文物受损记录。
选定欲删除的记录点击删除按钮可进行删除操作。
选定欲修改的记录并做相应修改后点击修改按钮可进行修改操作
5、点击“文物修复记录”后可选择“添加修复详情”、“查询修复详情”功能。
“添加修复详情”功能:可插入包括修复文物名称、修复文物编号、修复负责人、修复时间、修复详情等的修复记录,点击“添加”按钮即可进行添加操作。
若需要清空输入框的所有内容,点击“重置”按钮即可。
“查询修复详情”功能:用户可查询所有的文物修复详情,也可输入部分文物名称模糊查询相关的文物修复记录。
选定欲删除的修复记录点击删除按钮可进行删除操作。
选定欲修改的记录并做相应修改后点击修改按钮可进行修改操作
6、点击“安全退出“按钮可安全退出此系统,防止用户的误操作。
7、点击“关于文物”可查看文物的教育意义,对于具体的博物馆应用,还页面还可放置关于博物馆的介绍等内容。
8、用户权限管理:本系统问用户进行了等级划分,分A类用户和B类用户,两类用户对于系统由不同的权限。A类用户有所有的操作权限,B类用户仅可进行文物、展厅的查看及查询,以及文物管理模块的“文物鉴赏”功能,对于其他操作无权限。
八.总结:
- 系统的主要特色及创新点
用户身份不同权限不同:本系统界面简单直接,按照操作目的步步指引,逻辑较强。在后台管理记录用户类别,只有管理员对系统数据有增删改的权限。
权限意识严格:重点体现在仓库管理方面。不是该仓库负责人无权对其进行删改。
弹窗警告并阻止各种错误输入:系统中有许多需要用户自行输入的文本框,对其是否为空进行了判定。确保输入正确有效后才会对数据库进行修改。避免数据库报错导致程序终止。
图片高质量上传:本系统采用,将上传的图片转存到磁盘上,数据用的不定长字符串类型存储图片的绝对地址的方式存储图片,相比于将图片设为BLOB数据格式更高效快捷,比云存储的方式更适用于本实验的现实条件。
时间处理:通过日期选择器实现了日期选择,比起手动输入更加方便且降低了出错风险。
- 遇到的困难及解决方法
设计阶段:
powerDesigner制作导出的ER图比较粗糙
解决方法:使用powerDesigner制作导出的ER图和数据模型都比较生硬粗糙,即使进行实体间参数的修改和调整也还是无法和系统达到较高的匹配度。最后我们将其制作出的数据用于参考,在这基础上重新制作ER和数据模型。
代码实现阶段:
本系统面向不同群体用户,对于游客和管理员的身份需要加以区别以维护数据库的安全性。
解决方法:考虑到博物馆藏品系统的服务群体,我们在用户管理表中设置了用户类别,管理员与其他用户有不同的操作权限。