本文针对社区数字图书屋进行研究分析,然后开发设计出社区共享书屋小程序以解决问题。社区共享书屋小程序主要功能模块包括:图书资讯、新书信息、图书借阅、注册押金等,采取本系统此次设计前端视图界面选择Java开发语言来完成,系统功能设计采取MySQL作为后台数据的主要存储单元,采用Springboot框架进行系统的开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对社区共享书屋小程序的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现社区共享书屋小程序和部署运行使用它。
关键词:Java;MYSQL;共享书屋
Abstract
This paper studies and analyzes the community digital library, and then develops and designs the community shared library applet to solve the problem. The main functional modules of the community shared bookstore applet include: book information, new book information, book borrowing, registration deposit, etc. The front-end view interface of the system is designed using the Java development language. The system functional design uses MySQL as the main storage unit of the background data, and the system development is carried out using the Springboot framework, realizing all the functions of the system. This report first analyzes the background, role and significance of the research, laying a foundation for the rationality of the research work. Based on the analysis of various requirements and technical problems of the community shared bookstore applet, the necessity and technical feasibility of the system are proved, and then the technical software and design ideas needed to design the system are introduced. Finally, the community shared bookstore applet is implemented and deployed to use it.
Keywords: Java; MYSQL; library
1绪论
1.1研究背景及意义
全民阅读是一个大课题,已经上升到全面建成小康社会的国家文化战略,我国公共图书馆占比重较小,不能很好地满足全民阅读的需要,再加之我国每年社区中的图书不能很好地保存管理和流通,建成面向社区居民的社区共享书屋小程序后有助于社区中共享图书的管理和社区文化环境的建成。面向社区居民的社区共享书屋小程序可以极好地利用家庭图书资源,补齐了公共图书馆数量的欠缺方便阅读兴趣的培养,避免家庭中图书买而不看、看过沉睡现象的发生。近年来一大批中小型的社区共享图书平台得以成长起来。我国家庭拥有图书高达6亿册,然而却得不到很好的流通,只能在家中睡大觉,因此需要建设社区居民的共享书屋小程序,让社区图书管理更加的智能化。
1.2国内外研究现状
美国的社区共享图书馆是世界上办得最好的,有上万家,惠及全美所有人口,其藏书量也非常惊人。美国九成以上的社区公共图书馆接通了互联网,八成以上的社区公共图书馆为读者提供免费上网服务,七成以上的社区公共图书馆提供网上借阅服务。美国的社区公共图书馆根据居民年龄层次的不同,分为成人阅览区、青少年阅览区和儿童活动阅览区。在美国办个图书馆借阅卡非常简便。只要出示最近的水电或者电话账单,再加上驾照,证实你是该社区的居民,即可免费办理图书借阅证。
日本每个社区均设有图书馆。政府在社区建设中,负责图书馆的规划并按规定提供经费,而日常事务由财团法人管理。这个财团法人是管理社区福利事务的社会团体,政府为其提供经费,并制定管理法规,每年进行审计监督。在美国、日本、新加坡等国家的社区图书馆在服务方面都突现的非常出色,不仅能够满足当地居民的阅读需求,还把服务范围扩大到社区新闻发布、公民纳税指导、气象与旅游指南等方面,成为居民了解社区、融入社区生活的门户。
在我国,面向社区居民的共享图书(室)是文化事业、公共文化设施的重要组成部分,在社区开展图书馆服务是图书文化融入社会、参与营造良好文化环境和文明社会风尚、拓展社会服务的切入点。目前社区共享图书馆(室)建设存在的主要问题是:服务对象不明确,开放程度不够;服务的技术手段落后,跟不上信息技术发展的进程;服务阅读项目、手段单一,不能适应读者不断变化的、多层次的阅读需求;仍明显具有图书馆(室)传统的内向服务特征和封闭性。因此,必须正确认识面向社区居民的共享书屋小程序建设的意义,树立正确的建设观,使社区共享图书小程序的建设落到实处,发挥应有的功能。
1.3系统开发的内容
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,面向社区居民的社区共享书屋小程序的开发使用Springboot框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。
(3)确定好系统使用的技术,进行在线确认系统所划分的用户角色,并且根据用户角色划分确定所要设计的功能模块,对面向社区居民的社区共享书屋小程序的设计主要划分别为管理员和用户角色,平台用户主要是针对社区居民,登录后可以随时根据自己的需求进行书籍信息以及图书的借阅、归还,对于平台管理的工作人员可以根据自己的分管内容进行在线信息的处理及操作,管理员获取到所有用户的详细数据信息,并根据需求进行第一时间处理解决。
(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,并且通过测试来判断程序是否完善,对于系统测试,需要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。
1.4论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章:引言。第一章主要介绍了课题研究的背景意义,国内目前相关研究现状以及技术和本文的研究内容与主要工作。
第二章:系统需求分析。第三章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第四章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第五章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第六章主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
1.5小程序框架以及目录结构介绍
整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 小程序 体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序 。
2 社区共享书屋小程序系统分析
本章内容概括了社区共享书屋小程序的可行性分析、功能分析以及用例分析。
2.1 可行性分析
2.1.1 技术可行性分析
在分析了社区共享书屋小程序的真实需求后,将社区共享书屋小程序所需要的角色划分整理成了下图2-1和图2-2。
从开发工具来看,由于社区共享书屋小程序是基于Java开发的,因此当前市面上的开发工具都可以来开发,这些功能强大的开发工具可以给我来设计毕设带来非常大的方便。
从社区共享书屋小程序的本身技术来说,对于我来开发一个社区共享书屋小程序这个毕设是不费事的。社区共享书屋小程序的开发可以简单的分为前台模块、后台模块开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用Java开发,数据库使用mysql,因此为我在开发社区共享书屋小程序这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。
2.1.2 经济可行性分析
从社区共享书屋小程序的开发成本来看,社区共享书屋小程序的设计和开发都是我自己完成的,没有其他成本上的开销。
从社区共享书屋小程序的维护成本来看,社区共享书屋小程序的开发遵循一套完整的代码编写规范,并且社区共享书屋小程序的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。
在社区共享书屋小程序上线之后,上线前期我会根据真实需求来调查,对使用我开发的社区共享书屋小程序来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他小区中,他们可以自己来注册使用我的社区共享书屋小程序,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。
综合以上的分析,社区共享书屋小程序所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的社区共享书屋小程序的市场将越来越大。因此,从经济层面来看开发社区共享书屋小程序的是可行的。
2.1.3 操作可行性分析
社区共享书屋小程序的主要的服务对象是需要借阅图书的人群,总的来说社区共享书屋小程序的使用还是比较简单的,一般不存在操作困难的事情,社区共享书屋小程序的管理人员需要对该社区共享书屋小程序有一定的了解,比如新书信息、图书借阅、注册押金等操作,如果不会,可以进行简单的培训就好了。
2.2 系统功能分析
2.2.1 功能性分析
社区共享书屋小程序我划分为了用户管理模块和管理员模块这两大部分。
前台用户管理模块:
(1)用户注册登录:用户注册为正式用户并登录社区共享书屋小程序;用户对个人信息的增删改查,比如个人资料,密码修改。
(2)用户查看图书资讯:用户进行资讯的查看,可以进行点赞评论。
(3)我的收藏:用户可以查看自己以往收藏起来的图书,同时可以移除自己的收藏夹。
(4)新书信息:用户可以点击“新书信息”栏,跳转新书列表,可以查看到新书信息。
(5)图书借阅:用户在图书列表处可以点击某个图书进行图书借阅操作。
(6)注册押金:用户可以在线进行注册已经押金支付操作。
(7)图书归还:用户可以进行图书归还操作。
(8)意见反馈:用户可以在线进行意见反馈提交。
后台管理员管理模块:
(1)轮播图:管理员可以对系统轮播图进行增删改查操作。
(2)系统用户:管理员可以对前台上注册过的用户信息进行管控,同时可以对管理员的信息进行管理。
(3)通知公告:管理员可以发布系统最新通知公告。
(4)资讯分类管理:管理员可以对资讯信息进行分类管理。
(5)新书信息:管理员可以对新书信息进行维护管理等。
(6)意见反馈:管理员对用户反馈意见进行回复。
(7)借阅信息管理:管理员可以对用户的图书借阅信息进行管理。
(8)注册押金管理:管理员可以对用户押金进行管理。
2.2.2 非功能性分析
社区共享书屋小程序的非功能性需求比如社区共享书屋小程序的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1社区共享书屋小程序非功能需求表
安全性 | 主要指社区共享书屋小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指社区共享书屋小程序能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响社区共享书屋小程序占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着社区共享书屋小程序的页面展示内容进行操作,就可以了。 |
可维护性 | 社区共享书屋小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
社区共享书屋小程序的完整UML用例图分别是图2-1和图2-2。在参与者上包括用户以及管理员。前台上用户角色用例包括用户是注册成为我们正是系统用户、用户登录、公告、图书资讯、新书信息、图书借阅、图书归还、注册押金、个人资料、密码修改、收藏,用户角色用例如图2-1所示。
图2-1 社区共享书屋小程序用户角色用例图
web后台管理上的管理员是维护整个社区共享书屋小程序中所有数据信息的,管理员可以进行登录、轮播图、公告、管理员、注册用户、资讯管理、意见反馈管理、新书信息管理、注册押金管理、借阅信息管理、归还信息管理。管理员角色用例如图2-2所示。
2.4本章小结
本章主要通过对社区共享书屋小程序的可行性分析、功能需求分析、系统用例分析,确定整个社区共享书屋小程序要实现的功能。同时也为社区共享书屋小程序的代码实现和测试提供了标准。
3 社区共享书屋小程序总体设计
本章主要讨论的内容包括社区共享书屋小程序的功能模块设计、数据库系统设计。
3.1 系统架构设计
本社区共享书屋小程序从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1社区共享书屋小程序系统架构设计图
表现层(UI):又称UI层,主要完成本社区共享书屋小程序的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本社区共享书屋小程序时的舒适度。UI的界面设计也要适应不同版本的社区共享书屋小程序以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本社区共享书屋小程序的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本社区共享书屋小程序的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本社区共享书屋小程序的数据存储和管理功能。
3.2 系统模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本社区共享书屋小程序中的用例。那么接下来就要开始对本社区共享书屋小程序的架构、主要功能和数据库开始进行设计。社区共享书屋小程序根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 社区共享书屋小程序功能模块图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个社区共享书屋小程序中主要的数据库表总E-R实体关系图。
图3-2 社区共享书屋小程序总E-R关系图
3.3.2 数据库逻辑结构设计
通过上一小节中社区共享书屋小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表book_borrowing (图书借阅)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | book_borrowing_id | int | 10 | 0 | N | Y | 图书借阅ID | |
2 | book_number | varchar | 64 | 0 | N | N | 图书编号 | |
3 | book_name | varchar | 64 | 0 | Y | N | 图书名称 | |
4 | book_type | varchar | 64 | 0 | Y | N | 图书类型 | |
5 | book_author | varchar | 64 | 0 | Y | N | 图书作者 | |
6 | number_of_books | int | 10 | 0 | Y | N | 0 | 图书数量 |
7 | book_location | varchar | 64 | 0 | Y | N | 图书位置 | |
8 | press | varchar | 64 | 0 | Y | N | 出版社 | |
9 | book_cover | varchar | 255 | 0 | Y | N | 图书封面 | |
10 | borrowing_instructions | text | 65535 | 0 | Y | N | 借阅须知 | |
11 | book_introduction | longtext | 2147483647 | 0 | Y | N | 图书简介 | |
12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | qrcode_img | varchar | 255 | 0 | N | N | 二维码图片 | |
16 | qrcode_title | varchar | 64 | 0 | N | N | 二维码标题 | |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表book_type (图书类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | book_type_id | int | 10 | 0 | N | Y | 图书类型ID | |
2 | book_type | varchar | 64 | 0 | Y | N | 图书类型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表borrowing_information (借阅信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | borrowing_information_id | int | 10 | 0 | N | Y | 借阅信息ID | |
2 | book_number | varchar | 64 | 0 | Y | N | 图书编号 | |
3 | book_name | varchar | 64 | 0 | Y | N | 图书名称 | |
4 | book_type | varchar | 64 | 0 | Y | N | 图书类型 | |
5 | number_of_books | int | 10 | 0 | Y | N | 0 | 图书数量 |
6 | book_location | varchar | 64 | 0 | Y | N | 图书位置 | |
7 | book_cover | varchar | 255 | 0 | Y | N | 图书封面 | |
8 | borrowing_instructions | text | 65535 | 0 | Y | N | 借阅须知 | |
9 | borrowing_user | int | 10 | 0 | Y | N | 0 | 借阅用户 |
10 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
11 | borrowing_type | varchar | 64 | 0 | Y | N | 借阅类型 | |
12 | borrowed_quantity | int | 10 | 0 | Y | N | 0 | 借阅数量 |
13 | hours_of_loan_service | datetime | 19 | 0 | Y | N | 借阅时间 | |
14 | lending_duration | varchar | 64 | 0 | Y | N | 借阅时长 | |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表deposit_information (押金信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | deposit_information_id | int | 10 | 0 | N | Y | 押金信息ID | |
2 | deposit_title | varchar | 64 | 0 | Y | N | 押金标题 | |
3 | deposit_type | varchar | 64 | 0 | Y | N | 押金类型 | |
4 | deposit_label | varchar | 64 | 0 | Y | N | 押金标签 | |
5 | deposit_amount | varchar | 64 | 0 | Y | N | 押金金额 | |
6 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
7 | content_of_deposit | text | 65535 | 0 | Y | N | 押金内容 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
9 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
10 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
11 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表feedback (意见反馈)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | feedback_id | int | 10 | 0 | N | Y | 意见反馈ID | |
2 | feedback_to_users | int | 10 | 0 | Y | N | 0 | 反馈用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_telephone | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | feedback_date | date | 10 | 0 | Y | N | 反馈日期 | |
6 | feedback_content | text | 65535 | 0 | Y | N | 反馈内容 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表new_book_information (新书信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | new_book_information_id | int | 10 | 0 | N | Y | 新书信息ID | |
2 | book_number | varchar | 64 | 0 | N | N | 图书编号 | |
3 | book_name | varchar | 64 | 0 | Y | N | 图书名称 | |
4 | book_type | varchar | 64 | 0 | Y | N | 图书类型 | |
5 | book_author | varchar | 64 | 0 | Y | N | 图书作者 | |
6 | book_location | varchar | 64 | 0 | Y | N | 图书位置 | |
7 | press | varchar | 64 | 0 | Y | N | 出版社 | |
8 | book_cover | varchar | 255 | 0 | Y | N | 图书封面 | |
9 | book_introduction | longtext | 2147483647 | 0 | Y | N | 图书简介 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表ordinary_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ordinary_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表registration_deposit (注册押金)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registration_deposit_id | int | 10 | 0 | N | Y | 注册押金ID | |
2 | deposit_title | varchar | 64 | 0 | Y | N | 押金标题 | |
3 | deposit_type | varchar | 64 | 0 | Y | N | 押金类型 | |
4 | deposit_label | varchar | 64 | 0 | Y | N | 押金标签 | |
5 | deposit_amount | varchar | 64 | 0 | Y | N | 押金金额 | |
6 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
7 | content_of_deposit | text | 65535 | 0 | Y | N | 押金内容 | |
8 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表return_information (归还信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | return_information_id | int | 10 | 0 | N | Y | 归还信息ID | |
2 | book_number | varchar | 64 | 0 | Y | N | 图书编号 | |
3 | book_name | varchar | 64 | 0 | Y | N | 图书名称 | |
4 | book_type | varchar | 64 | 0 | Y | N | 图书类型 | |
5 | number_of_books | int | 10 | 0 | Y | N | 0 | 图书数量 |
6 | book_location | varchar | 64 | 0 | Y | N | 图书位置 | |
7 | book_cover | varchar | 255 | 0 | Y | N | 图书封面 | |
8 | borrowing_instructions | text | 65535 | 0 | Y | N | 借阅须知 | |
9 | borrowing_user | int | 10 | 0 | Y | N | 0 | 借阅用户 |
10 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
11 | borrowing_type | varchar | 64 | 0 | Y | N | 借阅类型 | |
12 | borrowed_quantity | int | 10 | 0 | Y | N | 0 | 借阅数量 |
13 | hours_of_loan_service | datetime | 19 | 0 | Y | N | 借阅时间 | |
14 | lending_duration | varchar | 64 | 0 | Y | N | 借阅时长 | |
15 | return_time | datetime | 19 | 0 | Y | N | 归还时间 | |
16 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
17 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
18 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个社区共享书屋小程序的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 社区共享书屋小程序详细设计与实现
社区共享书屋小程序的详细设计与实现主要是根据前面的社区共享书屋小程序的需求分析和社区共享书屋小程序的总体设计来设计页面并实现业务逻辑。主要从社区共享书屋小程序界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1 前台首页界面
在社区共享书屋小程序的前台首页界面上采用了上+中+下的方式来布局界面,最右上角是登录+注册这+搜索这三个链接,下面依次是导航栏+轮播图以及下面的通知公告,下面依次是推荐的图书资讯展示,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
不是社区共享书屋小程序中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份后+用户名再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。
图4-2 前台用户注册界面图
4.1.3 用户登录界面
社区共享书屋小程序中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到社区共享书屋小程序的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
4.1.4搜索图书界面
在社区共享书屋小程序首页上的搜索框中输入自己想要快速检索的图书的关键词并点击“搜索”按钮后将会输入的关键词进行和数据库中保存的图书信息进行模糊匹配,并将检索到最匹配的图书信息显示出来。搜索图书界面如下图7所示。
图4-4搜索图书界面图
4.1.5 新书信息界面
当访客点击社区共享书屋小程序中导航栏上的“新书信息”后将会进入到该“新书信息”列表的界面,然后选择想要看的新书信息,点击进入到详细界面,也可以发布新书信息信息,新书信息界面如下图4-5所示。
图4-5新书信息界面图
4.1.6 意见反馈界面
当访客点击了任意意见反馈后将会进入反馈详情界面,可以进行意见编辑提交,页面如图4-6所示。
图4-6 意见反馈界面图
4.1.7 图书借阅界面
用户可以在此界面对图书进行借阅操作。图书借阅界面如下图4-7所示。
图4-7 图书借阅界面图
4.1.8归还信息界面
用户可以在“归还信息”界面对共享图书进行在线归还。归还信息界面如下图4-8所示。
图4-8 归还信息界面图
4.2管理员功能模块
4.2.1 注册用户界面
社区共享书屋小程序中的管理人员是可以对前台注册的用户进行管理。注册用户界面如下图4-9所示。
图4-9注册用户界面图
4.2.2 通知公告管理界面
社区共享书屋小程序中的管理人员是可以发布通知公告,通知公告管理界面如下图4-10所示。
图4-10通知公告管理界面图
4.2.3 新书信息管理界面
社区共享书屋小程序中的管理人员是可以对社区共享书屋小程序内的不同图书的分类下的图书信息进行维护和管理的,支持查看到各个新书信息的库存量情况以及添加+删除图书。新书信息管理界面如下图4-11所示。
图4-11新书信息管理界面图
4.2.4图书类型管理界面
社区共享书屋小程序中的管理人员是可以对社区共享书屋小程序内的图书信息进行分类等。图书类型管理界面如下图4-12所示。
图4-12图书类型管理界面图
4.2.5借阅信息管理界面
社区共享书屋小程序中的管理人员是可以进行借阅信息管理的。借阅信息管理界面如下图4-13所示。
图4-13借阅信息界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、用户注册功能测试、共享图书展示功能测试、共享图书添加功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 正确输入用户信息,用户成功登录 | 输入用户的信息 | 1.在密码框输入用户密码。2.点击登录 | 跳转到首页 | 正确 |
用户注册功能测试:
表5-2 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户注册模块测试 | 正确输入用户星系,完成用户注册 | 输入用户的基本信息 | 在注册页面填写用户相应的信息,然后点击“注册”按钮。 | 提示成功并跳转到登录界面 | 正确 |
用户注册模块测试 | 用户注册失败 | 用户两次输入密码不一致 | 用户在注册页面填写信息时输入两个不一致的密码然后点击“注册”按钮。 | 注册失败提示两次密码输入不一致 | 正确 |
图书信息界面测试:
表5-3 图书信息界面测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
图书信息功能模块测试 | 图书信息正常的显示 | 浏览图书信息 | 在前台首页选择一个图书分类进入分类列表,然后选择一个图书 | 进入该图书的详细信息界面 | 正确 |
用户添加图书功能测试:
表5-4 用户添加图书功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户添加图书功能测试 | 添加图书成功的情况 | 输入新图书的基本信息 | 后台选择“发布图书”选项,然后填写新图书基本信息点击“添加”按钮 | 新图书添加成功 | 正确 |
用户添加图书功能测试 | 添加图书失败的情况 | 输入图书基本信息不完全 | 后台选择“发布图书”选项,然后不完全填写图书信息,点击“添加”按钮。 | 对应信息框后出现提示请输入XXXX信息 | 正确 |
用户添加图书功能测试 | 添加图书失败的情况 | 用户在价格框输入非数字字符 | 后台选择“发布图书”选项然后再输入非数字字符,点击“添加”按钮。 | 添加失败,提示“分享者信息添加!” | 正确 |
5.2 系统测试结果
通过编写社区共享书屋小程序的测试用例,已经检测完毕用户登录模块、用户注册模块、图书展示模块、图书添加模块功能测试,通过这4大模块为社区共享书屋小程序的后期推广运营提供了强力的技术支撑。
结论
至此,社区共享书屋小程序已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、Java技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]刘士霞.社区图书馆共建共享模式探析——以山东省肥城市社区图书馆建设为例[J].图书馆工作与研究,2022(S1):127-131.
[2]单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理网站设计与实现[J].电脑知识与技术,2021,17(30):40-41+50.
[3]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021(09):31-33.
[4]申子怡,郝芳溶,唐梓铭.浅析社区共享图书馆的推广形式与意义[J].产业创新研究,2020(14):30-31.
[5]叶卿.面向城市社区阅读推广的公共图书馆阅读共享空间建设研究[J].河南图书馆学刊,2020,40(04):16-18.
[6]谭成华.社区图书馆推广全民共享阅读策略分析[J].智库时代,2020(01):80-81.
[7]熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2019,15(36):76-77.
[8]吴文光.文化建设中社区图书馆的共建共享研究[J].智库时代,2019(44):276-277.
[9]朱运乔.基于SpringBoot+SSM框架的Web应用系统搭建与实现[J].电脑编程技巧与维护,2019(10):23-25.
[10]毕丽萍.共享图书对社区图书馆发展策略的启示[J].图书馆理论与实践,2019(06):97-102.
[11]江云.共享模式下我国高校图书馆与社区图书馆协同发展研究[J].图书馆工作与研究,2019(01):111-116+128.
[12]张凌睿,杜仕勇.APP模式移动图书馆共享文化社区的构建研究[J].图书馆,2018(09):77-84.
[13]吴密.基于信息共享与云服务的图书馆虚拟社区构建研究[J].图书馆学刊,2018,40(08):124-128.
致 谢
社区共享书屋小程序的完成,标志着我即将结束在XXX大学的校园生活并跨入社会。在即将毕业的此刻,我想对所有帮助过我的师长、同学和亲人表达我发自内心的谢意。
感谢学校这个大家庭,在这里我们总能找到自己的归属。学校始终在向我们传达着温暖和关怀,接纳和包容我们的缺点。学校给我最大的感受便是要将自己的专业知识与实践相结合,而我也正在努力的成为学校所要求的应用型人才。
感谢各位老师,学院使我从懵懂一步步走向成熟。在这里每个老师都拥有着最大的善意和耐心,来教育我们这群大孩子。学院举办的各类活动是给予我锻炼自己的机会,正是这些机会让我成为了更好的自己,提升了自己各方面的能力。
其次我要感谢我的论文指导老师。我之所以被老师所吸引,是因为老师对于学生友爱和对于工作认真的态度。从选题到开题到论文的撰写,老师一直都在悉心的指导,在指出存在的问题后会与我们探讨解决方法。
最后,我要对即将参与本篇论文审阅和答辩的各位老师表示感谢。