宠物领养平台开发:SpringBoot实战

第4章 系统设计

系统的设计一切都是为了用户的使用,虽然用户使用过程中可能只是面对着浏览器进行各种操作,但是不代表着系统对于用户在浏览器上的操作不进行处理,所以说,设计一个系统需要考虑到方方面面。

4.1 功能结构设计

图4.1即为设计的管理员功能结构,管理员权限操作的功能包括对注册用户信息的管理,对宠物领养,宠物认领,教学视频,感谢信以及公告进行管理,审核宠物领养以及认领的信息。

图4.1 管理员功能结构

图4.2即为设计的用户功能结构,用户权限操作的功能包括申请领养宠物,申请认领宠物,查看申请的宠物领养或申请的宠物认领的审核状态,发布感谢信,查看或对教学视频进行收藏以及留言。

图4.2 用户功能结构

4.2 数据库设计

宠物领养系统运行中产生的数据需要按照提前设置的存储规则进行保存,而这个存储规则则是在数据库的设计中进行设置的。通常情况下,为了更好的配合系统运行,也要给用户带来良好的使用体验,设计一个很好的数据库是必须的,因为它能减少用户的等待时间,还可以对系统的请求在最短时间内进行响应。所以,对数据库设计时,需要花费一定的时间来分析系统对于数据存储的要求以及存储的具体数据,然后设计具体的存储规则,保证数据库能够对系统的各种数据请求进行及时回应,缩短数据处理时间,并在一定程度上降低数据冗余,节省存储空间。

4.2.1 数据库概念设计

实体-联系图还有一个名称即E-R图,是Entity Relationship Diagram各英文单词首字母的缩写,它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体,联系,属性的有效手段。绘制E-R图能够选择的工具也有很多,但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具,因为它是基于可视化处理,使用它创建E-R图非常简单。使用基本的E-R图构成元素,比如椭圆,菱形,矩形,还有实线段来表达对应的信息,椭圆代表属性,即实体的特征,矩形代表实体,即数据库中的一个具体数据表,菱形代表实体中相互关系,实线段主要是完成椭圆,矩形,菱形的连接,基于这样的方式即可完成对本系统的E-R图进行完整绘制。

(1)图4.4即为宠物认领这个实体所拥有的属性值。

图4.4 宠物认领实体属性图

(2)图4.5即为用户这个实体所拥有的属性值。

图4.5 用户实体属性图

(3)图4.6即为宠物领养这个实体所拥有的属性值。

图4.6 宠物领养实体属性图

(4)图4.7即为管理员这个实体所拥有的属性值。

图4.7 管理员实体属性图

(5)图4.8即为上面介绍的实体中存在的联系。

图4.8 实体间关系E-R图

4.2.2 数据库物理设计

本小节主要任务即是根据上述内容进行数据存储结构的设计,也就是在数据库中设计存放本系统的数据的数据表,设计数据表时,需要对各个字段进行确定,通常来说,一个实体与一张数据表相对应,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,这里需要根据系统实际数据的情况进行设置,同时也需要在具体表中确定该表的主键,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,方便今后系统对数据表进行数据存储访问时,在提高数据存储效率的同时,还不容易导致系统出错。接下来就对设计的数据表进行展示。

表4.1 宠物领养表

字段 注释 空 类型

id (主键) 主键 × int(11)

chongwulingyang_name 标题 √ varchar(200)

chongwulingyang_types 类型 √ int(11)

chongwulingyang_photo 宠物图片 √ varchar(200)

jieshu_types 是否被认领 √ int(11)

chongwulingyang_content 宠物详情 √ text

create_time 创建时间 √ timestamp

表4.2 管理员表

字段 注释 空 类型

id (主键) 主键 × bigint(20)

username 用户名 × varchar(100)

password 密码 × varchar(100)

role 角色 √ varchar(100)

addtime 新增时间 × timestamp

表4.3 宠物认领审核表

字段 注释 空 类型

id (主键) 主键 × int(11)

chongwurenling_id 宠物认领 √ int(11)

yonghu_id 认领用户 √ int(11)

chongwurenlingshenhe_text 认领凭据 √ text

chongwurenlingshenhe_yesno_types 申请状态 √ int(11)

create_time 创建时间 √ timestamp

表4.4 宠物认领表

字段 注释 空 类型

id (主键) 主键 × int(11)

chongwurenling_name 标题 √ varchar(200)

chongwulingyang_types 类型 √ int(11)

chongwurenling_photo 宠物图片 √ varchar(200)

yonghu_id 发布用户 √ int(11)

jieshu_types 是否找到主人 √ int(11)

chongwurenling_content 宠物详情 √ text

create_time 创建时间 √ timestamp

表4.5 宠物领养审核表

字段 注释 空 类型

id (主键) 主键 × int(11)

chongwulingyang_id 宠物领养 √ int(11)

yonghu_id 领养用户 √ int(11)

chongwurenlingshenhe_text 认领凭据 √ text

chongwulingyangshenhe_yesno_types 申请状态 √ int(11)

create_time 创建时间 √ timestamp

表4.6 感谢信表

字段 注释 空 类型

id (主键) 主键 × int(11)

ganxiexin_name 标题 √ varchar(200)

yonghu_id 发布用户 √ int(11)

ganxiexin_content 内容 √ text

create_time 创建时间 √ timestamp

表4.7 视频收藏表

字段 注释 空 类型

id (主键) 主键 × int(11)

jiaoxueshipin_id 视频 √ int(11)

yonghu_id 用户 √ int(11)

jiaoxueshipin_collection_types 类型 √ int(11)

insert_time 收藏时间 √ timestamp

create_time 创建时间 √ timestamp

表4.8 视频留言表

字段 注释 空 类型

id (主键) 主键 × int(11)

jiaoxueshipin_id 视频 √ int(11)

yonghu_id 用户 √ int(11)

jiaoxueshipin_liuyan_text 留言内容 √ text

reply_text 回复内容 √ text

insert_time 留言时间 √ timestamp

update_time 回复时间 √ timestamp

create_time 创建时间 √ timestamp

表4.9 教学视频表

字段 注释 空 类型

id (主键) 主键 × int(11)

jiaoxueshipin_name 视频标题 √ varchar(200)

jiaoxueshipin_types 视频类型 √ int(11)

jiaoxueshipin_photo 封面 √ varchar(200)

jiaoxueshipin_video 视频 √ varchar(200)

zan_number 赞 √ int(111)

cai_number 踩 √ int(111)

jiaoxueshipin_content 详情 √ text

create_time 创建时间 √ timestamp

表4.10 公告表

字段 注释 空 类型

id (主键) 主键 × int(11)

news_name 公告名称 √ varchar(200)

news_types 公告类型 √ int(11)

news_photo 公告图片 √ varchar(200)

insert_time 公告时间 √ timestamp

news_content 公告详情 √ text

create_time 创建时间 √ timestamp

表4.11 用户表

字段 注释 空 类型

id (主键) 主键 × int(11)

username 账户 √ varchar(200)

password 密码 √ varchar(200)

yonghu_name 用户姓名 √ varchar(200)

sex_types 性别 √ int(11)

yonghu_id_number 身份证号 √ varchar(200)

yonghu_phone 手机号 √ varchar(200)

yonghu_address 个人地址 √ varchar(200)

yonghu_photo 照片 √ varchar(200)

create_time 创建时间 √ timestamp

结 论

由于本人学习的是计算机方面的专业,对于计算机软件方面的相关知识也进行过课堂上的学习以及课后的实际操作练习,因此,对于开发一款已经确定了课题的宠物领养系统,从功能需求,功能模块划分,数据库的选择,数据库的设计,编程语言的确定,系统界面的布局和设计等知识,我都有个大致的思路。所以,在参照软件设计思想以及设计流程的基础上,我运用已经具备的理论知识,加上后期从网络渠道获取的相关技术知识,我能够根据制定的系统开发时间安排完成各个阶段性的开发任务。并能够在系统完成开发后期,编写相应的系统文档。

宠物领养系统制作期间,我也遇到过一些难题,在最开始的时候,我并不知道该系统具体要设计几个功能模块,以及数据表需要设计几张表,还有对于开发技术的深度理论学习还不充分等,值得庆幸的是,我在面临这些困难时,我能够通过网络或者通过学院提供的图书馆寻求解决办法。比如在不知道具体功能的情况下,我从网上下载了很多的与宠物领养系统相关的程序,分析了它们的功能之后,我再结合即将开发的宠物领养系统进行综合分析,选取了适合宠物领养系统的功能部分,再结合实际情况以及使用者的需求确定本系统功能。对于数据表的设计,我先是在图书馆借阅了一本数据库方面的书籍进行查看,然后查看相似系统对于数据表的结构设计等知识,然后在本系统功能确定的情况下,结合本系统设计了配套的数据表,对于难度最大的开发技术部分,我花费了很多的时间研究网络上的相似系统的功能模块上的代码,一般都是对基础数据的增加,更新,查询或修改方面的代码,然后把本系统能够运用的代码部分在简单更改后进行使用,在完成了一个功能模块以及又一个功能模块之后,又经过了简单的测试工作,最终呈现出一个完整的能够解决用户实际问题的宠物领养系统。该系统唯一不足的就是代码方面还有很多重复的部分,不够精简,还有用户操作本系统,对于用户的误操作行为,本系统还不能及时反馈,这也是一大缺点。

宠物领养系统完成了,其相应的配套文档也需要进行编写,该文档主要描述宠物领养系统是如何进行分析,设计以及实现的,让其他阅读本文档的人增加对该系统的了解,编写文档过程中,由于自己平时对于办公软件的操作不是很频繁,根据学院要求的文档排版格式进行编辑也花了很多时间,在不断学习排版技巧以及对本系统配套文档的反复修改之后,最终在学院规定的时间内进行了文档定稿。

毕业项目各个工作进行到此,我也是收获颇丰,正因为自己努力学习知识,积极寻求解决办法,才让我能够提交一个完整的作品。制作毕业项目让我又得到了成长,不仅是专业知识的增加,也包括解决问题的能力得到了提高,很感谢学院给的制作毕业项目的机会。

参考文献

1\]吴文洋,刘世宇.基于B/S架构宠物领养管理系统设计\[J\].软件,2020,41(11):85-87. \[2\]杨华.基于SSM的宠物店信息系统的设计与实现\[D\].吉林大学,2019. \[3\]余涛.计算机软件开发中Java编程语言的应用研究\[J\].信息记录材料,2020,21(01):113-115. \[4\]王子虎,胡丽珍.基于计算机软件安全开发的JAVA编程语言研究\[J\].数字技术与应用,2019,37(12):133-134. \[5\]刘星淇.Java编程语言的特点与应用分析\[J\].通讯世界,2019,26(09):149-150. \[6\]张云健.计算机软件Java编程特点及其技术应用\[J\].信息与电脑(理论版),2019(13):97-98. \[7\]张振超,吴杰,陈序蓬.浅谈Java中Mysql数据库的连接与操作\[J\].信息记录材料,2020,21(02):144-145. \[8\]范开勇,陈宇收.MySQL数据库性能优化研究\[J\].中国新通信,2019,21(01):57. \[9\]丁佳.基于JSP+MySQL的用户登录系统SQL注入实例及防范\[J\].网络安全技术与应用,2020(09):49-51. \[10\]高远,夏敏,吕林峰.基于Myeclipse集成环境下的JUnit单元测试\[J\].指挥信息系统与技术,2018,1(06):20-23. \[11\]吴鹏飞.如何解决Myeclipse开发环境下Web工程项目不编译问题\[J\].电脑编程技巧与维护,2017(07):93. \[12\]王丹,孙晓宇,杨路斌,高胜严.基于SpringBoot的软件统计分析系统设计与实现\[J\].软件工程,2019,22(03):40-42. \[13\]张峰.应用SpringBoot改变web应用开发模式\[J\].科技创新与应用,2017(23):193-194. \[14\]谢志坚.计算机应用软件开发技术支撑思考\[J\].电子世界,2020(15):53-54. \[15\]姬晓鹏.计算机软件开发技术与设计探究\[J\].电子测试,2020(16):133-134. \[16\]Raffi Khatchadourian.Automated refactoring of legacy Java software to enumerated types\[J\].Automated Software Engineering,2017,24(4). \[17\]Ben White.Marx and Chayanov at the margins:understanding agrarian change in Java\[J\].The Journal of Peasant Studies,2018,45(5-6). 致 谢 也许是大学校园在管理上比较开放,学习知识时不像高中时期那样一整天都在学习,而是一天当中抽出部分时间安排学习,其余的时间就可以自由安排,可以去社会上参加实践,可以在学校的图书馆阅读书籍,丰富自己的知识,也可以加入学校的社团进行个人能力的锻炼等等,加上学院的学生都来自全国各地,大家的风俗习惯都有些不一样,这样同学之间也有更多的话题进行畅聊。基于这些原因,我觉得我的性格也逐渐变得开朗起来,正因为如此,我很快乐的度过了大学四年时光。然而,我们都要面临毕业,同学间,师生间也将面临分离,我们都会离开学校,进入社会这样的大环境学习并生活。虽然很不舍,但这也是人生成长中必经的阶段! 临走之际,对这几年的大学生活简单的进行了回想,发现自己学到的专业知识也增加了很多,在本专业上,自己也得到了一定的实操能力锻炼。这些成长都是我们的专业老师带来的,他们这几年辛苦教学,我们也从中获取了许多的专业知识,提高了个人的专业方面的能力,非常感谢他们。 还有一位老师也需要在此特别感谢,即论文指导老师。可以说最后这一年,跟指导老师接触比较多,指导老师在本专业上,非常全能,在我进行本课题的任务期间,导师给予我全面的指导,也能根据我的不足之处推荐合适的书籍让我查看,让我的能力得以提升,继而可以从容面对开发期间遇到的困难。 另外,我也要感谢我的寝室室友,还有我们班上的同学,从接到毕业项目任务之后,我们常常谈论各自课题进展的情况以及面临的问题,也经常互相鼓励对方要积极认真面对毕业项目,这种陪伴,让我在制作毕业项目期间并没有产生过多的焦虑,非常感谢他们。 最后时刻,我也要对我的大学校园表达谢意,我的大学校园是一个非常美丽的地方,而我这几年,在这么优美的环境下学习知识,我已经感到非常幸福。希望在今后能看到我的校园在众多师生共同努力下变得强大,校园的环境也将变得更加美丽。

相关推荐
啾啾Fun23 分钟前
Java反射操作百倍性能优化
java·性能优化·反射·缓存思想
20岁30年经验的码农29 分钟前
若依微服务Openfeign接口调用超时问题
java·微服务·架构
曲莫终38 分钟前
SpEl表达式之强大的集合选择(Collection Selection)和集合投影(Collection Projection)
java·spring boot·spring
ajassi20001 小时前
开源 java android app 开发(十二)封库.aar
android·java·linux·开源
q567315231 小时前
Java使用Selenium反爬虫优化方案
java·开发语言·分布式·爬虫·selenium
kaikaile19951 小时前
解密Spring Boot:深入理解条件装配与条件注解
java·spring boot·spring
广州山泉婚姻1 小时前
解锁高效开发:Spring Boot 3和MyBatis-Flex在智慧零工平台后端的应用实战
人工智能·spring boot·spring
守护者1701 小时前
JAVA学习-练习试用Java实现“一个词频统计工具 :读取文本文件,统计并输出每个单词的频率”
java·学习
bing_1582 小时前
Spring Boot 中ConditionalOnClass、ConditionalOnMissingBean 注解详解
java·spring boot·后端
ergdfhgerty2 小时前
斐讯N1部署Armbian与CasaOS实现远程存储管理
java·docker