第一章 绪论
1.1 研究背景与意义
1.1.1 研究背景
长期以来,地方新闻资讯的传播主要依赖传统媒体渠道或分散的线下口口相传,信息获取往往局限于特定的地域范围或熟人社交圈。新闻内容的展示形式单一,多受限于纸质载体的版面或电视广播的时段,受众必须在固定时间、固定地点被动接收信息,缺乏自主选择的灵活性。新闻信息的传播半径较小,优质的地方资讯与潜在的广大读者之间匹配效率低下,导致许多有价值的本土故事难以走出深巷。在信息交互方面,传统模式下读者反馈渠道匮乏,新闻发布后难以实时收集公众意见,缺乏规范的互动记录与数据沉淀。这种模式大大限制了地方新闻文化的传播速度与覆盖广度,也制约了新闻内容形式的多样化创新与媒体影响力的总体提升1。信息传播的时效性与互动性不足,新闻服务流程的便捷性与个性化欠缺,成了当前地方新闻网站发展所遭遇的主要障碍。
1.1.2 研究意义
互联网及相关信息技术的普及给社会各个领域带来了深刻的影响,也改变了传统地方新闻传播领域运作的方式。信息发布和获取的途径得到了根本性的拓宽,地理和时间都成了自由的概念。以网络平台为基础、在更广的范围内进行贺州本地新闻资讯传播、互动交流的模式逐渐形成并且不断扩展。这样大大提高了公众关注本土动态的积极性,促进了地方文化的传承与扩散,催生了新的媒体生态形态。因此,开展贺州地方新闻网站的设计与实现很有意义,能为贺州地方资讯传播赋予一个集中、规范、高效的管理和服务平台。系统改善信息的展现架构和搜索手段,从而优化新闻内容同读者需求的契合程度。系统设定新闻发布、审核、互动等过程的步骤性操作程序,保证操作流程的质量,提高用户的信任度。系统对于新闻稿件、用户评论、访问数据等主要要素实行统一管理,给网络舆论秩序的维持和服务的不断改善赋予根基。系统可以降低信息获取成本,提高资源配置效率,使贺州地方新闻传播市场更有序、更活跃地发展,最终达到社会效益与信息价值最大化的目的。
1.2 国内外研究现状
1.2.1 国内现状
国内地方新闻传播领域的研究和实践,在伴随着互联网技术的普及之后迅速发展起来。早期国内相关资讯传播大多依靠传统纸媒的电子版或者门户网站的地区频道,模式以单向信息发布和简单检索为主,阅读体验高度依赖用户主动查找,平台互动程度低,缺少对新闻时效性和用户反馈的有效保障。此种模式所造成的不足促使人们去探索专业的方向、平台化的发展。各级党报党刊及融媒体中心建设的推进代表国内地方新闻传播进入移动化、融合化的新阶段2。新型地方新闻平台融合了多媒体展示技术和社交分享功能,设置了用户的实名认证以及评论互动机制,目的在于创建舆论引导与民意表达的基础。其创新地使用了以地理位置或者民生热点为依托的"本地生活圈"这样的社区概念,从而提高用户的互动以及新闻内容的精准触达。平台有即时通讯工具供读者与编辑交流,接入了政务查询、便民服务等第三方功能,扩大了业务范围。成功的地方融媒体经验显示,创建内容审核体系、形成社区氛围、提供方便的沟通工具,都会对用户参与度、传播效果起到积极作用。但是大规模综合门户也存在地方特色不鲜明、信息更新滞后、个性化推荐不足等问题,这些问题也成了之后的研究方向和平台优化的重点。除综合性新闻门户之外,以某一区域为专门对象的垂直网站也具有活力。许多地市级新闻网站在发展初期就通过利用本地社交关系链来增加信任度,用深度报道和专题策划切入高关注度的本地民生类新闻,试图用权威发布和事实核查的办法来解决网络谣言中信息不对称的问题。该个案证明,对高价值或者敏感性的新闻给予专业的采编与审核服务,能加强新闻可信度、改善用户体验。历史文化、旅游资讯、政务公开等细分领域也出现了具有部分档案查询功能的特色网站、"县级融媒中心"等垂直平台,这些平台针对某一类地域文化深入研究,形成起一套内容生产标准以及社群文化,以满足用户在这一领域的深层次需求3。这些平台探索表明地方新闻传播市场以综合门户与垂直站点并存,多元化发展为主。综合平台依靠流量和生态优势,垂直平台依靠专业性、地缘黏性获得生存空间。目前我国的研究和应用重点是技术实现方面的融合机制,大数据和人工智能被用来对新闻舆情进行分析、对违规内容进行识别,从而实现了新闻图片和文字描述的自动审核,更加高效的民意反馈在线化流程也被创建出来,部分研究还涉及档案资源与新闻数据的关联挖掘4。平台运营策略也由原来的单信息中介,向权威背书、内容深耕、政务服务等深度服务转变,以达到提升传播效能、降低用户信息获取成本的目的。整体而言,国内地方新闻网站行业已经走过了简单的电子报阶段,进入了以媒体深度融合为核心、服务本地化、内容精细化为主要特征的竞争发展期,其发展过程给同类系统设计提供丰富的经验和需要完善的地方。
1.2.2 国外现状
美国、欧洲关于地方新闻传播与数字媒体建设的研究起步较早,发展路线各不相同,官方主导的公共广播网站、商业化的地方新闻门户以及社区驱动的非营利性新闻博客同时存在。以美国为例,许多地方报纸早期便建立了在线版,其模式具有基础性。这些平台创建起一套依靠用户订阅和数字广告的盈利回馈体系,此体系长久以来被当作地方新闻网站可持续运营的根基5。平台给予标准化的新闻分类格式,安全的用户评论管理通道,多媒体内容展示中心,创建起比较完整的线上地方新闻传播架构。其实践表明了付费墙(Paywall)机制和免费开放机制可以并存,全球化技术平台在本地化内容生产、版权保护、受众互动等方面遇到的复杂问题。其发展过程显示,成熟的内容质量管理体系以及多元化的营收模式是平台大规模运转的必要条件。另一种代表性模式是以"Patch"为代表的超本地化(Hyper-local)新闻网络,它更像是一个分布式的社区信息列表,结构相对简单,大部分内容聚焦于特定城镇的社区活动、警情通报和学校动态,旨在填补大型媒体无法覆盖的微观信息空白。这种模式显示出在极低的宏大叙事介入度下,通过极度本地化、精细化来满足用户基本信息需求的可能性,但是它在采编成本控制、内容深度方面的缺陷也很明显。近几年来,移动互联网的发展催生了众多基于地理位置推送新闻的移动应用,这些应用以用户位置为基础进行新闻的搜索、简化阅读流程、内置社交分享功能等,体现了新闻传播向移动化、即时化、社区化发展的趋势6。在公共媒体领域,如英国的BBC地方站或美国的NPR成员台,采取的模式则不同。它们是公共服务模式的代表,采用"广播+网络"融合流程,即专业记者采集内容,平台对内容进行多媒介加工、分发和归档,用户从中获取高可信度的资讯。该模式把新闻真实性把控、深度的调查报道、公共服务的履约等全部交给专业机构来承担,大大提高了新闻内容的一致性、权威性,但是运营成本较高。而一些专注于特定议题(如环境、教育)的非营利新闻机构则更进一步,聘请专家型记者保证报道深度,它们的模式依靠公众对高质量公共事务信息的高度需求建立起来,用专业服务来设立信任门槛。从实例中可以看出,对非标准化或者高价值的公共信息来说,平台深入参与采编、核实、标准化的服务是建立信任、提高传播效率的主要方式以Facebook News等依托巨型社交网络生态而发展起来的新闻聚合功能,用现有的社交图谱和信任关系(好友转发、群组讨论)来建立新闻的初始触达,体现了社交关系在地方新闻传播中的价值。国外研究对于在线新闻的可信度评估、算法推荐对用户信息茧房的影响、界面设计对用户阅读 engagement 的影响、数字鸿沟背景下的地方新闻可及性等都进行了深入研究。目前行业研究方向有利用人工智能辅助新闻写作与事实核查,更准确的个性化新闻推荐算法,区块链技术对新闻版权和溯源的保护,以及构建更高效的读者与记者互动体系等。总的来看,国外的地方新闻网站市场已经形成了多层次、多模式的成熟体系。轻资产聚合、重原创服务、综合化门户、垂直化社区等不同的模式为不同用户需求和信息品类提供着不同的服务。国外相关系统的设计、研究可以借鉴国外的发展经验与持续创新。
第二章 相关技术介绍
2.1 Java语言
Java是一种高级编程语言,被广泛使用,具有跨平台性,可以在不同的操作系统上运行。Java通过JVM(Java虚拟机)来实现平台无关性,程序的字节码文件可以在任何安装了JVM的设备上运行,不需要重新编译。Java语言具有面向对象的特点,用类和对象来组织代码,支持封装、继承、多态等基本特性,可以提高程序的可维护性、重用性。Java内存管理采用自动垃圾回收机制,可以很好地控制内存的使用,防止出现内存泄漏以及内存溢出等情况7。Java语法简洁,接近自然语言,降低了学习难度,并且执行效率较高。
Java语言有丰富的标准库,有各种各样的数据结构、网络通信、输入输出、多线程等,可以支持开发者在各个领域的应用开发。Java有很多支持开发的工具、框架,例如Spring框架、Hibernate框架、Apache Struts等。Java也被广泛地应用于企业级开发,在大型系统、分布式系统、Web应用以及移动应用开发等领域。由于Java具有好的生态系统及强大的社区支持,所以它被许多企业选为首选开发语言8。Java相比许多现代编程语言来说稳定性、兼容性好,在技术更新迅速的环境下仍能保持长久的生命力。
2.2 Spring Boot框架
Spring Boot是建立在Spring框架之上的一个开源的Java开发框架,可以简化Java应用的开发和部署过程。通过提供预配置好的、开箱即用的功能,可以让开发者快速地创建出独立的生产级Spring应用。Spring Boot的核心特点之一就是"约定优于配置",即在不需要大量的配置的情况下,框架可以自动推断出合适的默认设置9。该特点很大程度上减少了开发中对于复杂配置文件的依赖,使开发者可以将精力放在业务逻辑的实现上,而不用过多的去考虑底层的细节。
Spring Boot利用内嵌的Servlet容器实现了不需要外部服务器部署的功能,使应用可以打包成独立的可执行JAR文件或者WAR文件进行部署,简化了传统的Web应用开发流程。Spring Boot还提供了丰富的开发工具,包括自动化配置、内置监控、生产环境下的健康检查和应用的日志记录等功能,这些功能都可以使开发者更快地调试、测试并部署应用。Spring Boot支持多种集成,可以和Spring Cloud、数据库、消息队列、缓存等各种技术无缝对接,进一步提高了开发过程中的灵活性以及扩展性10。
2.3 Vue框架
Vue.js是用以创建用户界面的开源JavaScript框架,主要负责视图层的开发。Vue的主要特点有,响应式数据绑定、组件化开发、灵活的模板语法,可以用来开发高效、易于维护的单页面应用(SPA)。Vue的响应式系统能够自动根据数据的变化更新视图,开发者不用自己操作DOM,大大提高了开发效率。Vue的组件化设计把复杂的界面拆解成许多个独立的、可以复用的组件,有利于代码的模块化、重用11。
Vue框架可以和其它库或者现有的项目进行集成,在不影响项目其它部分的情况下,可以对局部进行替换或者扩展。它还有许多开发工具和插件生态,Vue Router来处理应用的路由,Vuex用来做集中式状态管理,这些工具大大提高了大型项目的开发效率和维护性。Vue的设计理念是简洁、灵活,可以适应从小型应用到大型企业级应用的各种需求。利用Vue的虚拟DOM技术,可以提高应用的性能,有效减少不必要地DOM操作,提高界面的更新效率12。Vue的轻量级以及渐进式框架的特性,使它成为前端开发者最常用的一种前端框架。
2.4 MySQL数据库技术
MySQL是关系型数据库管理系统(RDBMS),被广泛地用在Web应用、数据存储、企业级应用以及大数据分析等各个方面。MySQL使用结构化查询语言(SQL)作为和数据库进行交互的标准语言,可以对数据进行存储、查询、更新、删除等操作。MySQL有很强的扩展性,可以满足从小型单机应用到大型分布式系统数据存储需求13。用支持数据的ACID特性来保证数据操作的可靠性、一致性,即原子性、一致性、隔离性、持久性。
MySQL有多种存储引擎,根据不同的应用场景选择不同的存储引擎以满足对事务支持、性能优化、数据完整性等各方面的需求。MySQL还具有很强的索引功能,可以提高数据的查询和检索速度,对大数据量的处理更有优势。随着数据量的增加,MySQL还能使用分区表、复制、分布式架构等方式进行水平或者垂直扩展,来提高数据处理能力以及系统的可用性14。MySQL具有跨平台性,可以运行在不同的操作系统上,可以和各种编程语言以及开发框架集成使用,在不同的应用场景中都能得到应用。
2.5 B/S框架
B/S(浏览器/服务器)架构是Web的基础客户端-服务器架构,它的基本思想是把大部分计算和数据处理任务交给服务器端,客户端则通过浏览器与服务器进行交互。B/S架构的实现不需要特定的操作系统或者客户端软件,只要用户的设备可以运行Web浏览器,就可以访问应用程序。B/S架构有明显的优势就是跨平台支持和部署15。用户不需要安装额外软件就可以在浏览器中使用应用。
B/S架构中客户端的任务比较单一,主要是呈现用户界面、与服务器交互,所有的复杂业务逻辑、数据存储、处理等工作都是服务器端完成的。服务器端一般会用Web服务器、应用服务器来处理客户端的请求,同时利用数据库系统对数据进行存储和管理16。B/S架构具有较好的灵活性,开发者可以较快速地开发和部署Web应用而不用担心各种不同操作系统、不同硬件平台间的兼容问题。B/S结构便于集中管理,所有修改可以在服务器端进行,不需要客户端的操作系统和硬件配置。因此B/S架构在现代Web应用以及云计算环境中得到了广泛的使用。
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
所选择的技术栈有高效性、稳定性,Java语言使用Java虚拟机实现跨平台,保证兼容性。Spring Boot框架利用自动配置简化开发过程,Vue框架具有响应式特性和组件化设计从而提高开发效率。MySQL数据库具有快速存取和查询的特点,B/S架构使得客户端硬件需求降低并且提高系统的扩展性。整体技术栈的功能和性能是可行的。
3.1.2 操作可行性
选用的技术栈有成熟的技术工具和完善的文档支持,技术操作简便。Java、Spring Boot,Vue这些框架和MySQL数据库在系统开发、部署过程里面广泛应用,简化了系统的开发过程,前后端分离的设计提高了合作效率,B/S架构降低了系统部署的复杂度。整体操作过程可行。
3.1.3 经济可行性
使用开源的工具来降低软件的运行费用以及许可费。B/S架构减少硬件投资,也缩减了运维成本。开发周期短,项目可以快速上线提供服务,提高经济效益,保证成本和效益的平衡。
3.2 功能需求分析
UML(统一建模语言)用例图是需求分析阶段常用的工具,用图形的方式直观地表示出系统功能需求以及参与者。每个用例图中包含的用例就是系统可以执行的功能,以及与之交互的参与者。用例图帮助开发者和客户之间建立共同理解,确定系统应该提供哪些功能,这些功能又是如何被不同的用户所使用的。本文将对系统按照角色模块进行需求分析。
3.2.1 普通用户功能分析
注册登录:提供用户前台注册功能,以收集用户的基本信息(如用户名、密码、联系方式等),实现用户安全登录,通过验证用户名和密码确保账户访问的合法性与安全性。
首页:提供系统信息概览与个性化导航功能,包括展示动态轮播图、基于用户点击偏好智能排序的新闻信息推荐等核心内容,实现"千人千面"的资讯分发。
交流论坛:实现在线互动社区功能,普通用户可搜索浏览帖子详情,支持对喜欢的帖子进行点赞、收藏和评论回复,并可自主发布新帖内容进行分享交流。
网站公告:展示最新的官方公告通知信息,如系统维护通知、新功能上线说明、客服时间调整及网络规范提示等,确保用户及时获知平台动态。
天气查询:提供贺州本地气象服务功能,包括可视化天气地图、各区县地方天气预报及极端天气预警信息查询,帮助用户合理安排出行计划。
新闻信息:提供图文新闻资讯服务,支持列表浏览与关键词搜索,展示新闻标题、类型、摘要及详情,用户可对新闻进行点赞、收藏、分享并发布评论互动。
新闻视频:提供多媒体视频新闻服务,支持视频列表检索与播放,展示视频标题、类型、详情及播放数据,用户可在线观看并进行点赞、收藏、分享及评论操作。
在线反馈:提供用户意见提交通道,支持用户填写标题、选择用户类型、描述反馈内容并自动记录反馈日期,协助平台优化服务质量。
我的账户:提供个人账号安全管理功能,支持用户修改昵称、头像等基本资料,以及通过验证旧密码后更新登录密码,保障账户信息安全。
我的主页:打造个人社交形象窗口,实时展示用户动态流、关注的账号列表以及粉丝群体信息,增强用户间的社交互动与粘性。
个人中心:集成个人综合管理功能,包含个人首页:个人信息展示;新闻信息:可自行添加新闻,提交后等待管理员审核,审核后可发布在网站新闻信息里,在个人中心可查看详情和评论;在线反馈;交流论坛;收藏记录;点赞记录;评论管理及浏览记录等子模块。
普通用户用例图如图3-1所示。

图3-1 普通用户用例图
3.2.2 管理员功能分析
登录:提供管理员专属后台入口,通过严格的身份验证机制(用户名、密码及验证码)确保只有授权人员才能进入系统管理界面,保障后台数据安全。
后台首页:提供系统运营全景视图,支持修改管理员资料与密码,设有通知中心与快速导航(如新闻类型管理、新闻信息管理);集成多维度数据看板,展示访问总数、轮播图数、收藏数等关键指标,并通过饼状图、柱状图、折线图等直观分析普通用户增长趋势与新闻信息分布情况。
系统用户:实现用户权限与状态的全局管控,管理员可查看所有注册用户列表,并对普通用户和管理员账号进行启用、禁用或状态调整,维护系统用户体系的规范性。
新闻类型管理:提供新闻分类的标准化维护功能,支持以列表形式查看现有分类,并可灵活添加新的新闻类型,确保新闻内容归档清晰有序。
新闻信息管理:核心内容管理模块,支持新闻列表浏览、详情查看及读者评论监控;特设审核机制,专门处理普通用户投稿的新闻稿件,管理员审核通过后方可发布,同时也支持管理员直接添加官方新闻。
视频类型管理:提供视频新闻分类的维护功能,支持查看现有视频类型列表及添加新的分类标签,便于对海量视频资源进行结构化整理与检索。
新闻视频管理:负责视频内容的统筹管理,支持视频列表展示、详情预览及新视频的上传添加,确保平台视频资讯的及时更新与内容质量。
在线反馈管理:处理用户提交的各类意见与建议,支持查看反馈列表与详细内容,管理员可对反馈信息进行审核与回复,形成闭环处理机制,同时支持手动添加内部记录。
系统管理:包含基础配置与安全管控功能,其中轮播图管理用于设置首页展示的焦点图片及跳转链接;敏感词管理用于维护违禁词库,自动过滤不当言论,净化网络环境。
网站公告管理:负责平台公告信息的发布与维护,管理员可在此模块添加、编辑或删除系统维护、功能上线等通知公告,确保信息传达的准确性与时效性。
交流管理:全面监管社区互动生态,包含交流论坛内容管理与论坛分类设置;管理员可监控帖子动态,管理版块分类,维护良好的社区讨论秩序。
管理员用例图如下3-2所示。

图3-2 管理员用例图
3.3 非功能需求分析
1.可用性需求
系统的可用性要求系统具有高可用性架构,即系统在用户高并发的时候仍然能够保持稳定运行。系统应具备快速恢复的功能,当发生故障的时候可以迅速地进行自我修复。为了保证用户体验,系统需要有很高的响应速度和很低的延迟,可以在很短的时间内完成用户的请求并给出结果。系统应具有负载均衡的功能,可以将请求分散到不同的服务器上,防止因为单个服务器出现问题而使整个系统瘫痪。
2.可靠性需求
系统可靠性指的是系统长时间运行时可以保持正常的工作状态,不会频繁发生故障或者停机。系统需要有完备的数据备份和恢复机制,可以保证硬件出现故障或者其他灾难性事件的时候,数据不会丢失,并且可以很快恢复到正常的工作状态。系统中的各种服务和组件都应该具备容错能力,在部分组件失效的时候能够自动切换备用服务。
3.安全性需求
会对用户的个人信息、交易记录等其它敏感信息实施保护。系统要使用加密技术对用户传输的数据进行保护,防止数据在传输时被偷盗或被篡改。系统应当实行访问控制,用户可以访问的只能是那些得到授权的对象,不能给没有被授权的人进入系统的机会。系统应该具有身份验证的功能来防止恶意用户冒用别人身份进行操作。为了防止外部攻击,系统要具有防火墙、入侵检测系统等安全防护措施,保证系统的安全。
第四章 系统设计
4.1 系统架构设计
该系统采用经典的单体架构设计,使用Java语言和SpringBoot框架,前端使用Vue框架,数据库使用MySQL实现本地化数据存储。本系统采用的是B/S开发模式,可以提高系统的开发维护效率以及用户使用的便利性,适合用在小规模的基础应用场合中17。整个系统架构如图4-1所示。
图4-1 系统架构图
4.2 系统结构功能设计
整个系统由多个功能模块组成,通过对用户需求进行分析,该系统主要划分为普通用户与管理员两大核心模块。每个模块下又包含了若干子功能模块,系统将通过多角色协作来实现系统的各项职能。不同角色对应的具体功能模块如图4-2所示,系统功能设计能够确保各角色能够负责其特定职责。系统功能结构图如图4-2所示。
图4-2 系统功能结构图
4.3 系统流程设计
4.3.1 天气查询流程设计
该流程包含用户与天气数据系统的即时交互机制,主要是判断用户输入的地区是否有效以及查询类型的选择。如果地区有效,系统可以直接调用API并分支处理天气地图、地方详情或预警信息,实时返回可视化结果;若地区无效则引导重新输入,保证用户查询请求能够得到准确的解析和回应。该流程很好地表现出了数据检索和服务反馈的双向性。4-3为天气查询流程图。

图4-3 天气查询流程图。
4.3.2 查看交流论坛流程设计
该流程包含用户浏览与互动论坛的机制,主要是支持通过局部或全站搜索定位目标,查看帖子详情后执行点赞、收藏及评论回复,同时也允许用户自主发布新内容,保证社区信息能够得到充分的共享和反馈。该流程很好地表现出了内容消费与生产的双向性。交流论坛流程图如图4-4所示。

图4-4 交流论坛流程图。
4.3.3 查看新闻信息流程设计
该流程包含用户浏览与互动新闻的机制,主要是支持通过列表展示和搜索功能定位目标新闻,查看详细信息后执行点赞、收藏、分享及评论等操作,保证新闻内容能够得到充分的传播和用户反馈。该流程很好地表现出了信息获取与互动的双向性。新闻信息流程图如图4-5所示。

图4-5新闻信息流程图。
4.3.4 发布新闻信息流程设计
该流程包含新闻投稿与审核发布的机制,主要是用户提交新闻后进入管理员审核判断,如果审核不通过则返回用户修改并重新提交形成循环,审核通过则安排发布流程,包括内容上线、网站展示和发布确认,使用循环结构保证未达标内容持续修正完善,最终完成新闻发布。此流程保证内容的合规性以及信息传播的准确性。发布新闻信息如下图4-6所示。

图4-6订单配送管理流程图。
4.4 数据库设计
在数据库设计时,用E-R图来转换概念模型,从而得到具体的数据库结构。在此阶段要确定每一个数据表的字段类型、约束条件以及表与表之间的关系,给物理设计提供依据。然后会进一步分析优化数据存储方案来保证系统高效性、可扩展性18。
4.4.1 E-R图设计
E-R图即实体与关系图,是用图形化的手段对数据进行建模的一种方法,用图形化的手段来表达出实体、属性以及实体间的关系。利用图示化的方式来分析和设计数据库结构,确定数据之间的联系,方便以后数据库的开发和管理。下面给出系统的全局E-R图和各实体的属性图。
系统全局E-R图如图4-8所示。
图4-8 系统E-R图
普通用户实体主要包括普通用户id、用户id、姓名、手机号码等。实体属性图如图4-10所示。
图4-9普通用户实体属性图
新闻信息类型实体包含新闻标题、新闻类型、重点摘要、新闻详情等。实体属性图如图4-11所示。
图4-10新闻信息实体属性图
商品信息实体有商品信息id、标题、商品分类、原价、卖价等。实体属性图如图4-11所示。
图4-12 商品信息实体属性图
新闻视频实体有新闻标题、视频类型、发布日期等。实体属性图如下为图4-12。
图4-13闲置商城实体属性图
4.4.2 数据库表设计
数据库表设计就是按照业务需求,确定数据库表结构、字段类型和表间关系。用规范化的设计来保证数据的完整性、一致性、效率,避免冗余数据,为之后的数据查询、存储、维护提供清晰的框架19。以下为系统的数据库表设计。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-3-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID | |
| 12 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 13 | sticky | tinyint | 否 | 否 | 是否置顶 |
表 4-6-follow(用户关注)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | follow_id | int | 是 | 是 | 用户关注ID | |
| 2 | follower_id | int | 是 | 是 | 关注人ID | |
| 3 | follower_avatar | varchar | 255 | 否 | 否 | 关注人头像 |
| 4 | follower_nickname | varchar | 255 | 否 | 否 | 关注人昵称 |
| 5 | followed_id | int | 是 | 是 | 被关注人ID | |
| 6 | followed_avatar | varchar | 255 | 否 | 否 | 被关注人头像 |
| 7 | followed_nickname | varchar | 255 | 否 | 否 | 被关注人昵称 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-forum(论坛)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | forum_id | mediumint | 是 | 是 | 论坛ID | |
| 2 | display | smallint | 是 | 否 | 排序 | |
| 3 | user_id | mediumint | 是 | 否 | 用户ID | |
| 4 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 5 | praise_len | int | 否 | 否 | 点赞数 | |
| 6 | hits | int | 是 | 否 | 访问数 | |
| 7 | title | varchar | 125 | 是 | 否 | 标题 |
| 8 | keywords | varchar | 125 | 否 | 否 | 关键词 |
| 9 | description | varchar | 255 | 否 | 否 | 描述 |
| 10 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 11 | tag | varchar | 255 | 否 | 否 | 标签 |
| 12 | img | text | 65535 | 否 | 否 | 封面图 |
| 13 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 15 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 16 | avatar | varchar | 255 | 否 | 否 | 发帖人头像 |
| 17 | type | varchar | 64 | 是 | 否 | 论坛分类 |
| 18 | istop | int | 是 | 否 | 是否置顶 |
表 4-8-forum_type(论坛分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 3 | description | varchar | 255 | 否 | 否 | 描述 |
| 4 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 5 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 6 | icon | varchar | 255 | 否 | 否 | 分类图标 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-history(浏览记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | history_id | int | 是 | 是 | 浏览历史ID | |
| 2 | user_id | int | 是 | 是 | 浏览人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | type | varchar | 64 | 否 | 否 | 分类 |
| 9 | path | varchar | 255 | 否 | 否 | 路由 |
| 10 | params | text | 65535 | 否 | 否 | 参数 |
| 11 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-11-message_inform(通知记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | message_inform_id | int | 是 | 是 | 通知ID | |
| 2 | user_id | int | 是 | 是 | 通知人ID | |
| 3 | title | varchar | 255 | 否 | 否 | 标题 |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | type | varchar | 64 | 否 | 否 | 分类 |
| 6 | content | varchar | 255 | 否 | 否 | 内容 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-12-news_information(新闻信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | news_information_id | int | 是 | 是 | 新闻信息ID | |
| 2 | news_headline | varchar | 64 | 否 | 否 | 新闻标题 |
| 3 | news_type | varchar | 64 | 否 | 否 | 新闻类型 |
| 4 | cover_image | varchar | 255 | 否 | 否 | 封面图片 |
| 5 | ordinary_user | int | 否 | 否 | 普通用户 | |
| 6 | publication_date | date | 否 | 否 | 发布日期 | |
| 7 | highlights_summary | text | 65535 | 否 | 否 | 重点摘要 |
| 8 | news_specificss | longtext | 4294967295 | 否 | 否 | 新闻详情 |
| 9 | hits | int | 是 | 否 | 点击数 | |
| 10 | praise_len | int | 是 | 否 | 点赞数 | |
| 11 | collect_len | int | 是 | 否 | 收藏数 | |
| 12 | comment_len | int | 是 | 否 | 评论数 | |
| 13 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 14 | recommend | int | 是 | 否 | 智能推荐 | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | create_by | int | 是 | 否 | 创建用户ID | |
| 17 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-13-news_type(新闻类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | news_type_id | int | 是 | 是 | 新闻类型ID | |
| 2 | news_type | varchar | 64 | 否 | 否 | 新闻类型 |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | create_by | int | 是 | 否 | 创建用户ID | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-news_vuser_ideo(新闻视频)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | news_vuser_ideo_id | int | 是 | 是 | 新闻视频ID | |
| 2 | news_headlines | varchar | 64 | 否 | 否 | 新闻标题 |
| 3 | vuser_ideo_type | varchar | 64 | 否 | 否 | 视频类型 |
| 4 | cover_image | varchar | 255 | 否 | 否 | 封面图片 |
| 5 | news_vuser_ideo | varchar | 255 | 否 | 否 | 新闻视频 |
| 6 | release_date | date | 否 | 否 | 发布日期 | |
| 7 | specificsed_information | longtext | 4294967295 | 否 | 否 | 详情信息 |
| 8 | praise_len | int | 是 | 否 | 点赞数 | |
| 9 | collect_len | int | 是 | 否 | 收藏数 | |
| 10 | comment_len | int | 是 | 否 | 评论数 | |
| 11 | create_time | datetime | 是 | 否 | 创建时间 | |
| 12 | create_by | int | 是 | 否 | 创建用户ID | |
| 13 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-16-online_feedback(在线反馈)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | online_feedback_id | int | 是 | 是 | 在线反馈ID | |
| 2 | title_name | varchar | 64 | 否 | 否 | 标题名称 |
| 3 | type_of_feedback | varchar | 64 | 否 | 否 | 反馈类型 |
| 4 | ordinary_user | int | 否 | 否 | 普通用户 | |
| 5 | feedback_date | date | 否 | 否 | 反馈日期 | |
| 6 | feedback_content | text | 65535 | 否 | 否 | 反馈内容 |
| 7 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 8 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | create_by | int | 是 | 否 | 创建用户ID | |
| 11 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 9 | img | varchar | 255 | 否 | 否 | |
| 10 | title | varchar | 255 | 否 | 否 |
表 4-18-regular_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | regular_user_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_age | varchar | 64 | 否 | 否 | 用户年龄 |
| 4 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | create_by | int | 是 | 否 | 创建用户ID | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-sensitive_vocabulary(敏感词汇)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | sensitive_vocabulary_id | int | 是 | 是 | 敏感词汇ID | |
| 2 | sensitive_vocabulary | varchar | 64 | 否 | 否 | 敏感词汇 |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-20-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-21-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-22-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|----|-------------|-----------|-----|------|------|------------|------|-------|-------|
| 1 | user_id | int | | 是 | 是 | 用户ID |
| 2 | state | smallint | | 是 | 否 | 账户状态:(1可用 | 2异常 | 3已冻结 | 4已注销) |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证 | 1审核中 | 2已认证) |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证 | 1审核中 | 2已认证) |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | | 是 | 否 | 创建时间 |
表 4-23-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-vuser_ideo_type(视频类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | vuser_ideo_type_id | int | 是 | 是 | 视频类型ID | |
| 2 | vuser_ideo_type | varchar | 64 | 否 | 否 | 视频类型 |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | create_by | int | 是 | 否 | 创建用户ID | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
第五章 系统实现
5.1 普通用户功能
5.1.1 用户注册模块
普通用户在访问系统首页后,可选择点击"注册"按钮,进入相应的注册页面。在该页面中,用户需完成所有注册信息必填项,点击页面下方的"注册"按钮。系统在接收到表单数据并完成验证后,若信息无误,将提示注册成功,并在自动跳转至系统的登录界面,以便用户立即进行登录操作。界面如下图所示。
图5-1 用户注册界面
5.1.2 用户登录模块
用户在登录界面点击"登录"按钮后,需输入用户名、密码以及验证码以完成身份验证操作。系统在前端会自动对所输入信息进行有效性校验,同时检查该用户是否已通过后台审核流程。若审核通过且信息无误,则系统将允许用户成功登录并跳转至相应的功能界面;反之页面会弹出相应的提示信息,提醒用户重新输入或检查相关信息的正确性。登录界面如下图所示。
图5-2 用户登录界面
5.1.3 首页模块
首页模块作为系统的重要入口,主要承担着信息展示与功能引导的核心功能。该模块不仅提供了系统搜索功能和主要功能模块的导航菜单,还集成了平台轮播图展示、新闻信息推荐(首页喜好推荐按用户点击的类型而排序),用户可以快速了解系统的主要服务内容,并便捷地进入相应功能界面进行操作。界面如图所示。
图5-3 首页界面
5.1.4 新闻信息
提供图文新闻资讯服务,支持列表浏览与关键词搜索,展示新闻标题、类型、摘要及详情,用户可对新闻进行点赞、收藏、分享并发布评论互动。界面如图所示。
图5-4 新闻信息界面
5.1.5 个人中心
集成个人综合管理功能,包含个人首页:个人信息展示;新闻信息:可自行添加新闻,提交后等待管理员审核,审核后可发布在网站新闻信息里,在个人中心可查看详情和评论;在线反馈;交流论坛;收藏记录;点赞记录;评论管理及浏览记录等子模块。界面如图所示。
图5-5 个人中心界面
5.2 管理员功能
5.2.1 登录
提供管理员专属后台入口,通过严格的身份验证机制(用户名、密码及验证码)确保只有授权人员才能进入系统管理界面,保障后台数据安全。界面如图所示。
图5-6登录界面
5.2.2 后台首页
提供系统运营全景视图,支持修改管理员资料与密码,设有通知中心与快速导航(如新闻类型管理、新闻信息管理);集成多维度数据看板,展示访问总数、轮播图数、收藏数等关键指标,并通过饼状图、柱状图、折线图等直观分析普通用户增长趋势与新闻信息分布情况。界面如图所示。
图5-7后台首页界面
5.2.3 系统用户
实现用户权限与状态的全局管控,管理员可查看所有注册用户列表,并对普通用户和管理员账号进行启用、禁用或状态调整,维护系统用户体系的规范性。界面如图所示。
图5-8系统用户界面
5.2.4 新闻信息管理
核心内容管理模块,支持新闻列表浏览、详情查看及读者评论监控;特设审核机制,专门处理普通用户投稿的新闻稿件,管理员审核通过后方可发布,同时也支持管理员直接添加官方新闻。界面如图所示。
图5-9新闻信息管理界面
5.2.5 系统管理
包含基础配置与安全管控功能,其中轮播图管理用于设置首页展示的焦点图片及跳转链接;敏感词管理用于维护违禁词库,自动过滤不当言论,净化网络环境。系统界面图所示。
图5-10系统管理界面
第六章 系统测试
6.1 测试目的
测试的主要目的就是通过系统测试和验证,使软件或者系统满足设计需求和功能要求,可以稳定、安全地运行。测试的主要目的就是发现并修复潜在的缺陷或者问题,提高系统的质量与性能,减少实际使用中出现的故障率。用单元测试、集成测试、功能测试、性能测试等各种测试手段,对软件在不同环境下兼容性、可用性进行测试。测试还可以用来验证系统的安全性,防止出现数据泄露或者系统崩溃的问题。用全方位的测试提高用户使用的顺畅度,提高客户满意度,降低开发完成后维护成本。因此,测试过程不但是软件开发的重要环节,也是保证软件产品质量、满足用户需求的重要步骤。
6.2 测试方法
测试方法是保证软件或者系统质量的重要手段,一般根据测试的目标和需求不同选择不同的测试策略。常见的测试方法有黑盒测试、白盒测试、灰盒测试、回归测试、性能测试。
黑盒测试主要考察软件功能是否正常,而不是其内部结构。测试人员用输入数据去验证软件是否符合预期的需求,可以用于功能测试、接口测试。白盒测试主要是对系统内部结构进行验证,测试人员根据对代码的了解,对系统的逻辑、控制流、数据流等进行详细的测试,代码的每一个路径、每一个语句都被覆盖,从而发现潜在的逻辑错误或者性能瓶颈。灰盒测试把黑盒和白盒测试的优点结合起来,在部分了解系统内部结构的基础上,既重视系统功能,又重视系统安全性和集成性20。
回归测试是指软件修改或者更新之后,重新测试已经完成的功能,新版本没有引入新的缺陷或者问题。性能测试主要是对系统在不同的负载、压力下进行测试,查看响应时间、并发处理能力等主要性能指标。
采用上述测试方法可以有效地对软件的功能、性能、稳定性进行测试,最终交付给用户一个满足其需求、质量好的软件。
6.3 测试内容
用户注册功能测试
在登录系统之前,用户必须先注册为系统用户拥有账户权限。需要用户在注册页面根据提示填写必要的注册信息来创建账户。用户注册功能测试用例设计如表6-1所示。
表6-1 用户注册功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证用户成功注册 | 测试输入有效的用户名和密码,确认密码一致并点击注册 | 显示注册成功的提示信息 | 通过 |
| 验证用户名重复不能注册 | 测试输入已存在的用户名和输入有效的密码,确认密码一致并点击注册 | 显示用户名已存在的提示信息 | 通过 |
用户登录功能测试
为了使用系统的全部功能,用户首先需要进行登录。在登录界面,用户应输入其账号和密码以完成身份验证过程。有关用户登录功能测试用例设计如表6-2所示。
表6-2 用户登录功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证有效登录 | 测试输入正确的用户名和密码,点击登录按钮 | 显示登录成功,跳转至用户首页 | 通过 |
| 验证空用户名登录 | 测试不输入用户名,输入正确密码 ,点击登录按钮 | 显示用户名不能为空提示信息 | 通过 |
| 验证空密码登录 | 测试输入正确用户名,不输入密码,点击登录按钮 | 显示密码不能为空提示信息 | 通过 |
| 验证错误用户名登录 | 测试输入错误的用户名和正确密码,点击登录按钮 | 显示用户名或密码错误提示信息 | 通过 |
| 验证错误密码登录 | 测试输入正确用户名和错误密码,点击登录按钮 | 显示用户名或密码错误提示信息 | 通过 |
网站公告管理功能测试
针对网站公告管理模块的功能测试,主要检验网站公告的信息展示、添加、修改、删除及搜索等操作是否符合预期。关于网站公告管理功能测试用例设计如表6-3所示。
表6-3 网站公告管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证网站公告内容展示 | 测试网站公告展示功能是否正确显示所有网站公告内容 | 系统显示所有已添加的网站公告内容 | 通过 |
| 验证网站公告内容添加 | 测试添加一个新的网站公告,输入相应基本信息并提交 | 系统提示"添加成功"消息,列表中显示新的网站公告 | 通过 |
| 验证网站公告内容修改 | 测试修改已有网站公告的内容,修改某一网站公告内容并提交 | 系统提示"修改成功",系统更新网站公告内容 | 通过 |
| 验证网站公告内容删除 | 测试删除网站公告内容 | 系统提示"删除成功",列表中不再显示该网站公告 | 通过 |
| 验证网站公告内容查询 | 测试根据输入的关键字查询网站公告内容 | 系统会显示输入的关键字下的所有网站公告内容 | 通过 |
在线反馈管理功能测试
针对在线反馈管理模块的功能测试,主要检验在线反馈的信息展示、添加、修改、删除及搜索等操作是否符合预期。关于在线反馈管理功能测试用例设计如表6-4所示。
表6-4 在线反馈管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证在线反馈内容展示 | 测试在线反馈展示功能是否正确显示所有在线反馈内容 | 系统显示所有已添加的在线反馈内容 | 通过 |
| 验证在线反馈内容添加 | 测试添加一个新的在线反馈,输入相应基本信息并提交 | 系统提示"添加成功"消息,列表中显示新的在线反馈 | 通过 |
| 验证在线反馈内容修改 | 测试修改已有在线反馈的内容,修改某一在线反馈内容并提交 | 系统提示"修改成功",系统更新在线反馈内容 | 通过 |
| 验证在线反馈内容删除 | 测试删除在线反馈内容 | 系统提示"删除成功",列表中不再显示该在线反馈 | 通过 |
| 验证在线反馈内容查询 | 测试根据输入的关键字查询在线反馈内容 | 系统会显示输入的关键字下的所有在线反馈内容 | 通过 |
| 验证在线反馈内容审核 | 测试审核在线反馈,更新审核状态及编辑回复并提交 | 系统提示"提交成功"消息,列表中更新的在线反馈审核回复内容 | 通过 |
新闻视频管理功能测试
针对新闻视频管理模块的功能测试,主要检验新闻视频的信息展示、添加、修改、删除及搜索等操作是否符合预期。关于新闻视频管理功能测试用例设计如表6-5所示。
表6-5 新闻视频管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证新闻视频内容展示 | 测试新闻视频展示功能是否正确显示所有新闻视频内容 | 系统显示所有已添加的新闻视频内容 | 通过 |
| 验证新闻视频内容添加 | 测试添加一个新的新闻视频,输入相应基本信息并提交 | 系统提示"添加成功"消息,列表中显示新的新闻视频 | 通过 |
| 验证新闻视频内容修改 | 测试修改已有新闻视频的内容,修改某一新闻视频内容并提交 | 系统提示"修改成功",系统更新新闻视频内容 | 通过 |
| 验证新闻视频内容删除 | 测试删除新闻视频内容 | 系统提示"删除成功",列表中不再显示该新闻视频 | 通过 |
| 验证新闻视频内容查询 | 测试根据输入的关键字查询新闻视频内容 | 系统会显示输入的关键字下的所有新闻视频内容 | 通过 |
测试结论
对系统进行全面的功能、性能、安全等各方面的测试,以保证软件在各种环境下都能达到预期的效果。发现问题后已经进行相应的修复或者提出改进建议。经过测试,软件基本达到设计要求,性能稳定,没有出现重大缺陷,证明了系统的功能性、稳定性、兼容性。