《基于SpringBoot博客系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于SpringBoot博客系统的设计与实现.doc(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科毕业设计(论文) 基于SpringBoot博客系统的设计与实现Design and implementation of blog system based on SpringBoot院 (系)计算机学院专 业软件工程班 级16软件7班学 号16210120719学生姓名陈钰娟指导教师吴瑞然 提交日期2020年 04月 17日毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究
2、作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字): 签字日期: 年 月 日成绩评定成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。中文摘要互联网随着社会的进步也渐渐得到普及,给人们带来很多便利,可以提供更多的服务,在互联网还没有发展起来之前,人们需要购买纸质报纸或通过人际交往获取信息。现在随着互联网的发展,人们正在越来越多地方便我们的生活。有什么问题,除了通
3、过以前的方式获取信息外,人们还可以通过互联网更快、更方便地获取更多自己想要的信息,获取信息是这样,发表自己的想法也那么方便了。通过互联网发布你的经验或想法,可以让更多的互联网使用伙伴了解你的信息。因此,现在网络几乎已经成为人们收集和表达信息、更及时地获得意见和建议、通过交流更好地提高思维维度的一种方式。因此,个人博客的诞生为人们表达思想、记录生活、讨论知识的方方面面带来了新的体验。本系统基于SpringBoot和MyBatis框架,在服务端,也即是B/S中的Service端,基于Java平台的开源的应用框架SpringBoot框架,简单化了Spring框架应用构建和开发;优秀持久层框架 MyB
4、atis,不仅不需要依赖第三方关系而且只要简单增加配置即可使用,另外,为了使系统更加完整,安全性也不可忽视的一方面。本系统采用Shiro技术,Shiro是一个Java安全框架,功能包括用户登录的身份认证和用户权限的管理、密码加密等;作为博客系统,搜索功能是必不可少的,该系统采用Java语言开发的Solr搜索引擎,以Lucene及其扩展的全文搜索引擎为基础,配置更少即可快速使用。在Browns方面,本系统采用了比较流行的前端框架Bootstrap、layui、jQuery、Ajax等技术构建页面,使用户在页面上的视觉感受更加舒适,使用更加方便对用户更加友好;开发工具IntelliJ IDEA是采
5、用JetBrains公司开发的开发工具。本系统主要由前台显示和后台管理员管理两部分组成。主要实现了博客的一些基本功能前台核心功能:查看文章、评论文章、留言和查询等;后台核心功能:添加文章、管理评论、角色管理、权限分配等。本文将展示如何使用上述技术设计和实现博客系统。关键词: 博客 SpringBoot MyBatis Bootstrap layuiAbstractThe development of Internet brings convenience to people. Before the Internet has not developed, people need to buy p
6、aper newspapers or obtain information through interpersonal communication. In addition to previous methods of getting information, now there are more convenient ways to get more information you want and express how you want to type. Publishing your experiences or ideas over the Internet can make you
7、r information known to more Internet users. Therefore, the network has almost become a way for people to collect and express information, get opinions and suggestions more timely, and improve the dimension of thinking through communication. Therefore, the birth of personal blog has brought new exper
8、ience for people to express their thoughts, record their lives, and discuss all aspects of knowledge. The system is built and developed by SpringBoot, an open source application framework developed by java language. It is a good persistent layer framework independent of third-party relationship. MyB
9、atis is available with a simple configuration, and security is an important aspect to make your system more complete. This system uses Shiro technology, Shiro is a Java security framework, which includes user login authentication, user rights management, password encryption, etc. As a blog system, s
10、earch function is essential. Solr search engine developed in Java language is based on Lucene and its extended full-text search engine, and can be used quickly with less configuration. In front-end development, the system uses the popular front-end framework bootstrap, layui, jQuery, Ajax and other
11、technologies to build a simple page, adding appropriate front-end library to make the interface more comfortable and friendly. The development tool IntelliJ IDEA is a development tool developed by JetBrains. Foreground and background management is the system of tow parts. It mainly implements some b
12、asic functions of the blog - foreground core functions: viewing articles, commenting articles, messages and queries; background core functions: adding articles, managing comments, role management, permission assignment, etc.Key words: Blog SpringBoot MyBatis Bootstrap layui广东东软学院本科毕业设计(论文)目录1. 绪论11.
13、1研究背景与意义11.2国内外发展现状11.2.1国外发展的现状11.2.2国内发展的现状11.2.3未来发展的启示12. 系统开发工具与相关技术32.1 系统开发工具32.1.1 IntelliJ IDEA32.1.2 MySQL数据库32.1.3 Maven项目管理工具32.2 系统后台技术32.2.1 SpringBoot框架技术32.2.2 MyBatis框架技术32.2.3 Shiro框架技术32.2.4 Solr服务器技术32.2.5 Docker42.3 系统前端技术42.3.1 jQuery技术42.3.2 Ajax技术42.3.3 Bootstrap框架42.3.4 layu
14、i框架42.3.5 Thymeleaf模板引擎43. 系统分析53.1系统功能分析概述53.2系统功能性需求分析73.2.1系统游客功能性需求分析83.3.2系统管理者功能概述133.3系统可行性分析183.3.1 编写目的183.3.2 技术可行性分析183.3.3 经济可行性分析183.3.4 设备可行性184. 系统设计194.1系统体系架构设计概述194.2系统数据库设计概述205. 系统实现265.1系统游客功能模块实现265.2系统管理者功能模块实现296.系统测试316.1系统功能性测试317. 结论与展望387.1总结与结论387.2未来展望38参考文献39致谢401. 绪论本
15、章阐述了本文的研究背景和意义,网络快速发展下博客的发展现状以及对未来发展的启示。1.1研究背景与意义以往人们获取信息可以从报纸、书、电视、电台等途径来获取。值得一提的是随着互联网的发展,人们获取信息的方式除了前面提到的方式外又增加了新方式。在互联网上搜索相关信息和进行话题交流已经成为人们之间最便捷、最有效的交流方式。这就证明了一句话,秀才不出门,尽知天下事。随着人们在网络上发表意见、引用他人意见,博客系统逐渐形成。博客系统不仅是一个很好的表达个人情感和自我发展个性的平台,也是一个很好的与不同想法的人交流的平台。本文的研究意义是从软件设计的角度出发,从软件需求分析到测试,详细阐述了blog系统的
16、开发过程,并在简要介绍基本技术的基础上,将其应用到系统中,注重用户使用该系统获得从操作到安全等方面,并在此基础上设计和实现系统。1.2国内外发展现状近些年发展迅速的博客,很快的取代了早期的信息交流系统,比如BBS、电子邮箱、ICQ等方式,博客影响着人们的不仅是便捷方面更是效率上的改进,带给人们新颖的交流沟通方式,给人们之间传递信息带来了巨大的方便,以下为博客系统在国内外这些年来的发展状况。1.2.1国外发展的现状国外也不例外并且已经有很多成熟的案例,比如:世界上最流行的博客软件之一wordpress.org是一个开发源码的软件平台,通过平台能够达到提高对话质量和范围目标;再如Wix是一个创建网
17、站的托管平台,就算不是软件开发的使用者也可以快速的使用施放工具来创建网站,方便了想要拥有自己网站又没有基础的使用者。1.2.2国内发展的现状国内最流行的互联网概念是Blog。通过在博客中分享生活,人们可以通过阅读博客这种方式来获取各种精彩信息,扩大了人们对对未来美好的追求和未来信息世界的期待,加速了人与人之间的沟通交流,影响着整个国内互联网的发展趋势。1.2.3未来发展的启示博客是个人网络中热门级应用,它能使每个人都能成为互联网上成为一个独立且完整的主体。在未来发展中,博客将成为中心应用,用来整合各种网络应用,除了email,甚至短信通知、应用博客、协同办公以及讨论等应用的整合;使用平台上除了
18、计算机,还可以更便利的在手机上使用,亦可通过电视使用更能增加对视觉效果,各种终端在各地进行,更能显得更随手随时可得的信息。个人博客是整体形象基于个人应用中心的网上个人发言人。2. 系统开发工具与相关技术开发项目中所使用的工具和相关技术在项目中使用细节将在本节详细讲解。2.1 系统开发工具2.1.1 IntelliJ IDEA简称IDEA,它比传统的eclipse/MyEclipse更加方便和强大,自带插件或者能查找插件直接下载使用,不用专门网上查找插件再去软件中安装,使用方便快捷。IDEA智能提示功能以及各种快捷键使减少编码工作量和加快开发速度。2.1.2 MySQL数据库MySQL以其速度快
19、、准确性高、可用性强以及其开源等优点,并且下载包小引起了人们的广泛关注。MySQL是管理内容而不需要进行事务处理的最佳选择。2.1.3 Maven项目管理工具通俗一点讲Maven工具就是包管理工具,只需要在xml文件中增加项目需要的对应包名称以及版本,Maven就会从本地仓库或者是网上找到对应的包下载到本地仓库即可使用,所以说使用Maven搭建简单的项目只需要两三行即可运行该项目。2.2 系统后台技术涉及到获取用户请求、请求数据的逻辑处理、数据库操作处理以及操作安全问题。2.2.1 SpringBoot框架技术SpringBoot框架最大特点就是控制反转和面向切面编程。2.2.2 MyBati
20、s框架技术该框架最主要的作用就是操作数据库,是一个持久层框架,可以使用自带的操作语句或者开发者编写sql语句对数据进行操作。2.2.3 Shiro框架技术本项目使用该框架主要是使用到该框架的用户登录操作进行验证和权限管理这两个功能,通过权限管理这个功能可以给用户分配角色来控制用户可操作行为。2.2.4 Solr服务器技术本项目使用Solr是为了在前台用户输入关键字而对文章进行操作时使用,而Solr刚好是一个简单易上手的全文搜索工具,还能通过完整的功能管理界面来直观的观察服务器操作日志以及能通过管理界面来直接操作检索工具,通过直接操作的方式来检查自己在项目中是否查询正确。2.2.5 Docker
21、通过Docker容器引擎,可以在服务器中直接通过这个容器引擎下载需要的软件,无需在服务器中把下载包进行安装软件。 2.3 系统前端技术设计到与用户直接交互的操作,使用技术要给用户带来良好的体验。2.3.1 jQuery技术jQuery最简洁的介绍就是JavaScript框架,封装了常见的JavaScript功能,并且还能扩展自己的JavaScript代码,方便重用。有独特的链式语法,即可以减少重复代码的书写。拥有丰富的插件以及与主流浏览器兼容。实现了jQuery的宗旨write less, do more.2.3.2 Ajax技术Ajax通过提交请求刷新内容部分信息,不仅减少了对服务器的请求信
22、息,还很大程度提高了用户体验。使用Ajax的另一个优点就是不用依赖插件。2.3.3 Bootstrap框架使用Bootstrap可以缩短搭建网站的时间,是因为含有丰富的组件还附带了多个jQuery插件,使用起来更加方便快捷。可以根据自己的需要对CSS变量进行定制代码。2.3.4 layui框架Layui根据web页面的需求以模块化的方式进行加载所需模块,内部提供了很多的内置模块,它是一种网页管理页面的快速开发方案。2.3.5 Thymeleaf模板引擎Thymeleaf的使用有利于前后端分离,与SpringBoot框架结合使用,可以通过简单的配置即可进行信息传递。3. 系统分析3.1系统功能分
23、析概述如下图3-1可知道到由游客前台模块和管理者后台模块两部分组成的本系统,其中游客前台操作模块面向的使用主要对象是普通用户者即游客,其主要包括了游客临时信息的储存、组织展示、文章分类、文章搜索、文章展示、文章评论以及重点的文章浏览功能,其中文章评论不需要要求游客登陆注册,只需要留下邮箱联系即可,如果是第一次输入,会把信息存在浏览器的Local Storage中,减少了重复操作,提高用户使用好感。而管理者后台模块面向的使用对象主要是运维者和管理者,这模块主要功能包括了文章、用户、评论、文章类型以及文章标签的管理五个子功能模块。根据功能模块图给两个功能模块画出了具体用例图,如3-2所示的游客功能
24、用例图和如3-3所示的管理者功能用例图。图3-1 博客系统功能模块示意图图3-2 游客功能用例图图3-3 管理者功能用例图3.2系统功能性需求分析从上述两个模块方面进行详细的分析,并描述其功能需求,从而明确系统的详细功能需求,越明确的需求对后续的系统开发越好,即是为编码铺好道路。3.2.1系统游客功能性需求分析图3-4 博客系统游客功能概述图图3-5 前台首页图3-6热门文章展示列表图3-7推荐文章展示列表本系统中的游客功能需求的概述图(图3-4),如下进行分析。(1)文章列表展示的系统前台功能本系统游客操作的最基本功能,在打开本系统前台首页(图3-5),则为文章的展示页面,通过首页展示10条
25、信息,由下拉获取更多的文章。首页除了可以查看最新发布的文章展示以外,还有右边两个栏是用来展示热门文章(图3-6)和推荐文章(图3-7)的,热门文章是由文章的评论热度来评选出来的,推荐文章则是由管理员操作推荐出来的,这样能更加吸引用户的眼球,可以通过这两个栏目,让使用者有选择性阅读。该功能具有三项子功能,分别是通过文章分类来根据文章进行分类并展示功能、通过关键字搜索出的文章列表进行展示功能、通过文章标签搜索得到的文章列表展示功能。其中文章分类功能和文章标签搜索功能都使通过点击来查询文章,分类和标签皆是由管理者定义好的。以下对其三项子功能进行详细的阐述和说明。文章分类功能:每一篇文章都有属于自己的
26、类型,通过文章分类可以快速分类出该分类下的文章页面,通过文章分类功能能找到属于这一类的文章,以便系统的阅读文章。文章关键字搜索功能:通过搜索关键字来搜索出相关文章,其中这些关键字会在文章的标题、描述或者文章内容中找到相关的信息则会返回该文章,表示该文章有包括关键字的内容。可以通过这个功能快速的找到自己想要看的文章。文章标签搜索功能:每篇文章都有属于自己的标签,一个甚至多个,通过标签分类可以快速的找到有关该标签的文章,更适合与找到相关标签的文章。图3-8 文章详情展示功能页(2)文章详情展示功能(图3-8)该功能为课题博客系统的基础功能,在游客点击文章展示页中的任意一篇文章的时候会跳转到该文章的
27、详情展示页,在文章展示页中只有显示文章的标题和描述以及发表时间,通过这个功能能尽情地阅读全文。该功能具有三项子功能,分别为浏览评论功能、发表评论功能和打赏文章功能。其中浏览评论功能和发表评论功能只在该文章在可评论状态下才会开放的功能,以下对其三项子功能进行详细的阐述和说明。浏览评论功能:游客可以查看该文章的评论列表,通过评论列表游客可以更进一步的了解到该文章给不同人带来不一样的体验,以及能从评论中找到更多有关这篇文章的相似问题并能与其进行沟通。评论文章功能:游客可以对开发评论的文章进行评论,通过阅读文章的所感所疑对文章进行提问,以及可以找到有同样疑问的阅读者,并进行讨论;要发表评论,首先本系统
28、不用用户登录注册,只需要用户在评论的时候,添加昵称跟邮箱,如果有个人链接的也可以填写,只有填写了这些信息,管理员回复了评论,才能更快的通过邮箱接收到管理员回复的评论。如果不是第一次填写,系统会把填写的信息通过Local Storage储存在浏览器中,以便下次快速评论使用。打赏文章功能:该功能是游客对该文章给予物质上的肯定,由游客自愿打赏,如果游客觉得这篇文章不错,可以通过扫描二维码进行随意的打赏。(3)留言功能该功能主要针对游客在使用本系统的时候有任何的问题,可以通过留言来告知管理员,通过这个功能能更好的收集群众的建议和意见,对本系统能改进起到很大的作用。(4)博主信息展示功能该功能主要存放一
29、些博主的个人信息以及撰写这博客的意义,使游客更好的了解该博客。3.3.2系统管理者功能概述图3-9管理者功能概述图图3-10管理者登录页图3-11文章管理页图3-12用户管理页图3-13角色管理页图3-14标签管理页图3-15文章分类管理页本系统管理者功能需求概述图(图3-9),下面进行分析。(1)登录后台管理界面功能(图3-10)只有管理员才能进入后台管理页面,即必须通过登录这个功能才能获取访问权限。登录成功进入后台管理系统,由此来获得全部的系统功能以及由该用户的角色来获得用户的权限。只有当用户处于在线状态以及拥有对应的权限时,才能对有权限的功能进行操作,否则无法操作功能。登录后台管理功能是
30、必须的,如果用户没有通过验证都可以进行操作数据的话,会完全乱了后台的管理。(2)文章管理功能(图3-11)管理前台文章的必要功能,该功能只在管理员在线状态而且拥有权限的前提下才能操作,该功能包括四项子功能,接下来进行分析。a) 文章新增功能:该功能可以为系统新增文章,文章可以是存草稿和发布状态,可以开启评论和关闭评论状态,可以设为推荐文章,推荐文章只有在发布的前提下才会显示给游客。b) 文章查询功能:通过标题关键字来搜索,亦可通过文章的发布状态或者文章的推荐状态来搜索文章,方便管理者查看文章信息。c) 文章编辑功能:如果文章内容需要修改,不需要删除了再添加该文章的麻烦操作,直接修改信息即可。d
31、) 文章删除功能:处理不需维护或不合理文章,为了不让普通管理员误删,删除文章这种重要的操作,需要由管理员级别高者操作。(3)用户管理功能(图3-12)该功能只限于有管理用户权限的管理员才能操作,该功能具有四项子功能,分别为用户新增功能、用户查询功能、用户修改功能和赋予角色功能,该四项功能只在管理员在线状态为以及拥有权限时才会开放,下面进行分析。a) 新增用户功能:是有新增新管理员权限的管理者才能操作,给予新用户管理员账号,使新用户后台操作可操作的数据。b) 查询用户功能:通过名称关键字查询用户。c) 修改用户功能:可以通过该操作对用户信息进行修改。d) 角色赋予功能:可以通过赋予角色来使得该用
32、户拥有权限来操作后台管理内容,否则就算拥有了账号,登录了后台管理页面,也无法进行操作。(4)角色管理功能(图3-13)该功能具有三项子功能,分别为角色新增功能、角色权限功能以及角色修改功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。a) 角色新增功能:该功能为角色管理的子功能之一,该功能可以为系统新增角色。分配不同的权限,并把者角色给予不用身份的用户,这样的好处是能鉴别出哪个用户拥有什么角色而决定该用户拥有什么权限。b) 角色权限功能:该功能为角色管理的子功能之一,该功能为系统中管理员赋予角色时,角色所拥有的权限。c) 角色修改功能:该功能为角色管理的子功能
33、之一,该功能可以为系统角色进行修改,修改角色的基本信息以及修改角色拥有的权限。(5)标签管理功能(图3-14)该功能具有三项子功能,分别为标签新增功能、标签删除功能以及标签编辑功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。a) 标签新增功能:该功能可以为文章新增加标签选项。b) 标签删除功能:该功能可以删除标签,删除标签的前提是不能被文章所引用,如果执意要删除,则会把引用该标签的文章对应的标签去除掉。c) 标签编辑功能:该功能可以为标签进行修改。(6)分类管理功能(图3-15)分类功能是提供文章选择类型时候的数据。该功能具有三项子功能,分别为分类新增功能、
34、分类删除功能以及分类编辑功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。a) 分类新增功能:该功能可以为文章新增加分类选项。b) 分类删除功能:该功能可以删除分类,删除分类的前提是不能被文章所引用,如果有该类型的文章则不能被删除。c) 分类编辑功能:该功能可以为分类进行修改。3.3系统可行性分析3.3.1 编写目的写博客系统肯定有很多大大小小的问题,本小节的编写就是对项目问题进行研究,确定最有效的解决问题的方法。3.3.2 技术可行性分析科技的快速发展,如今的web开发技术已经是相当成熟了,开发本博客系统也使用了当下流行的框架,拥有API和各种插件,方便开发
35、者快速开发系统。如今网络发达,又有成熟的论坛网站提供查询资料,所以在技术方面可行。3.3.3 经济可行性分析开发者拥有开发工具,需要买学生机进行部署,经济方面可行。3.3.4 设备可行性在设备window10上进行开发,通过部署到服务器CentOS 7.3 64位上,如今的设备提供能够支持很多高效功能,在设备上可行。4. 系统设计本章结合前面两章节系统开发工具与相关技术的介绍和系统分析的内容,对博客系统设计主题结构和明确的设计要点。并对相关设计要点进行了详细的介绍和说明,阐明了系统架构的详细设计和实现,使开发过程更加清晰,使系统更具扩展性和可维护性,减少后期维护量。4.1系统体系架构设计概述图
36、4-1 博客系统体系架构图连接互联网的用户通过浏览器就能访问此系统。另外,本系统属于B/S结构的网站,采用SpringBoot和MyBatis框架进行数据逻辑处理,使前后分离的工作协调,这使得体系结构的业务逻辑更加清晰,同时也减少了业务代码的耦合,图4-1为系统体系架构示意图。如架构图可以看出本系统是一个基于MVC模式的系统,接下来介绍这三层的主要作用。(1)表现层:亦称视图层,即是MVC中的View层,此层的功能为将信息显示给用户。由CSS、HTML和JavaScript脚本文件组成,以响应successful response.JS Object profile),并通过Thymeleaf
37、模板引擎以及JS库jQuery将JSON消息中封装的数据呈现出页面并显示在浏览器中,完成页面内容的本地更新,向用户呈现动态效果。使用Ajax发送请求可以减少服务器请求来加快部分数据的加载,增强用户使用好感。(2)服务控制层:亦称为Controller层,属于MVC中的C层。服务控制层的主要任务是响应和处理表示层发送的相关服务业务请求。业务逻辑处理将处理结果封装为JSON消息,并将JSON消息响应返回到表示层进行处理,如果服务业务请求涉及到数据库的访问操作,则需要进行逻辑处理对应的操作,再转发到数据持久层进行处理,返回的处理结果留给该层的业务逻辑代码继续处理,该层的后台逻辑代码使用SpringB
38、oot框架通过注解配置拦截和处理相关的服务请求。(3)数据持久层:该层相当于MVC中的M层,该层使用MyBatis框架配置相应的代码,通过SpringBoot的启动类配置扫描映射器文件,可以自定义SQL语句或者使用框架自带的语句,然后框架自动将数据模型映射到程序开发中的对象,与数据库发生交互操作。4.2系统数据库设计概述实现网站系统项目都离不开数据库设计这一个重要设计步骤。通过设计表的字段,设计表与表之间的关系,在本系统中表与表中的关联关系没有明确的用外键引用关系,在服务层的逻辑处理来处理表与表的关系,减少表与表之间的处理逻辑,能提高处理性能。设计表要根据功能和实际情况设计,而且数据存储安全性
39、也要在考虑范围,将这两个要素结合起来设计数据库,保证了数据库尽可能接近功能需求,减少了不必要的操作,提高了数据库的访问和操作效率。系统实体关系(ER)图(图4-2),用来明确的显示各个实体之间的映射关系,清晰的ER图有利于逻辑处理好各实体之间的关系,给编码逻辑带来便利,亦可以一眼就可以明白实体之间的关系。实体主要包括用户、文章、资源、角色、标签、文章类型、文章评论和留言。实体之间的一对多或多对多关系表使用第三个实体来记录关联。实体之间的关系也反映在实体-关系图中。图4-2 博客系统实体关系E-R图实体关系图中的每个实体都对应了数据库中的某一张表,亦可能实体的数量会多于表的数量,因为在编码中可能
40、要建立某个需要响应的实体亦或者是几个表之间挑选出字段来显示的实体。下面是本系统重要表对应表字段的介绍。(1)角色表:用来储存后台管理者要用到的角色信息,通过管理者表中的外键fk_role_id来找对应的角色信息,亦是角色资源关联表中通过role_id去查找该角色对应的资源列表,其中表结构如表4-1所示。表4-1角色表role字段名数据类型是否主键是否为空字段说明role_idvarchar(19)是否角色主键role_namevarchar(50)否否角色名称(2)文章表:对应文章实体类,用于储存管理者发布的文章,文章是本系统的基础功能,所以该表亦是必不可少的,文章表除了基础字段还包括了发表者
41、和修改者两个字段,两个字段都是外键关联用户表,用来记录是哪个管理者对文章进行的操作,主要有其中表结构如表4-2所示。表4-2文章表article字段名数据类型是否主键是否为空字段说明article_idvarchar(19)是否文章主键titlevarchar(255)否否文章标题cover_imagevarchar(255)否是封面图片路径contenttext否否文章内容topint (1)否是文章是否推荐0不推,1推荐statusvarchar(2)否否状态,0草稿,1发布descriptionvarchar(255)否否文章简述commentchar(2)否否是否开启评论,0关闭,1开
42、启create_timetimestamp否否创建时间create_user_idint (11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint (11)否否修改者,外键,关联用户表type_idvarchar(19)否否文章类型,外键,关联文章类型(type)表(3)资源表:对应资源实体类,此表除了记录资源信息以外,主要功能是通过用户的角色id去角色资源表中找到resource_id列表,再通过该列表去本资源表中找到对应的资源信息,表结构如表4-3所示。表4-3资源表resource字段名数据类型是否主键是否为空字段说明re
43、source_idvarchar(19)是否资源主键resource_namevarchar(50)否否资源名称resource_urlvarchar(50)否否资源路径resource_typeint (2)否否资源类型,1是列表,2是按钮resource_parent_idvarchar(19)否否资源的父节点idresource_sortint(11)否否资源排序(4)文章类型表:对应文章类型实体类,用于文章表中的类型type_id作为外键所关联的表,通过关联获取问斩类型信息,其中表结构如表4-4所示。表4-4文章类型表type字段名数据类型是否主键是否为空字段说明idvarchar(1
44、9)是否文章类型主键type_namevarchar(50)否否文章类型名称type_descriptionvarchar(255)否否文章类型简述statuschar(2)否否状态,0正常,1不可用create_timetimestamp否否创建时间create_user_idint(11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint(11)否否修改者,外键,关联用户表(5)标签表:对应标签实体类,储存标签信息,该信息作用于文章,其中表结构如表4-5所示。表4-5标签表tag字段名数据类型是否主键是否为空字段说明tag_i
45、dvarchar(19)是否标签主键tag_namevarchar(50)否否标签名称descriptionvarchar(255)否否标签简述statuschar(2)否否状态,0正常,1禁用create_timetimestamp否否创建时间create_user_idint(11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint(11)否否修改者,外键,关联用户表(6)评论表:对应评论实体类,用于储存用户对文章的一级评论信息,通过外键fk_article_id来获取整个文章的一级评论。其中表结构如表4-6所示。表4-6评价表comment字段名数据类型是否主键是否为空字段说明comment_idvarchar(19)是否评论主键user_namevarchar(50)否否评论者姓名emailvarchar(100)否否评论者邮箱urlvarchar(100)否是评论者自己网站路径statuschar(2)否否状态,0正常,1私密,2禁止显示contentvarchar(200)否否评论内容del_flagchar(2)否否删除标志,0正
限制150内