基于协同过滤的新闻推荐系统的设计与实现(毕业设计、高质量、爬虫、python、数据可视化、Flask)
本文摘要:本研究设计并实现了一款基于协同过滤算法的新闻推荐系统,采用Python编程语言开发,前后端分离架构(前端Vue.js+后端Flask/Django)。系统包含三大用户角色:游客、普通用户和管理员,分别提供新闻浏览、个性化推荐、热点追踪及后台管理等功能。通过MySQL数据库存储用户行为数据和新闻内容,系统实现了响应时间3秒内、支持100+并发请求的性能目标。测试结果表明,该系统能有效提升新
摘 要
随着信息技术的不断发展,新闻推荐系统成为了为用户提供个性化新闻内容的重要工具。为了满足用户在碎片化时间内获取高效、精准的新闻服务需求,本课题设计并实现了一款基于协同过滤算法的新闻推荐系统。该系统不仅可以根据用户的兴趣和行为数据,为用户量身定制新闻内容,还具有高效的信息管理和安全维护功能,旨在为用户提供便捷的新闻浏览体验。
该新闻推荐系统分为三大角色权限:游客,普通用户和管理员。普通用户可以注册、登陆系统后,浏览新闻、选择热点新闻,并能够根据个人兴趣修改推荐偏好,同时还可以在个人中心查看已浏览、收藏的新闻内容。而管理员则拥有更为丰富的权限,除了能够管理新闻内容、发布时事热点、维护安全等,还可以通过系统后台查看用户行为数据与新闻数据,为优化推荐模型提供数据支持。系统实现采用了Python编程语言,基于协同过滤算法进行推荐服务。前端使用现代化的Web框架,提供友好的用户界面;后端则利用Flask或Django框架处理数据存储与推荐逻辑。此外,系统设计中注重数据安全性与可扩展性,为管理员提供系统优化和用户行为分析的功能。
本系统的实现不仅能够为用户提供个性化的新闻推荐服务,还能够帮助平台管理者优化推荐算法、提升新闻内容的精准度。通过本课题的研究与实现,读者将能够了解基于协同过滤算法的新闻推荐系统的设计与开发流程,以及如何结合Python进行高效的推荐系统开发。
关键词:新闻信息推荐系统;前后端分离;数据可视化;Flask/Django;Python
Abstract
With the continuous development of information technology, the news recommendation system has become an important tool to provide users with personalized news content. In order to meet the needs of users to obtain efficient and accurate news services in the fragmented time, this project designs and implements a news recommendation system based on the collaborative filtering algorithm. The system can not only customize news content for users according to users' interest and behavior data, but also has efficient information management and security maintenance functions, aiming to provide users with convenient news browsing experience.
The news recommendation system is divided into three roles: visitors, ordinary users and administrators. Ordinary users can register and log in the system, browse news, select hot news, and modify their recommendation preferences according to their personal interests. At the same time, they can also view the browsed and collected news content in their personal center. On the other hand, administrators have more permissions. In addition to managing and managing news content, releasing announcements and maintaining security, they can also view user behavior data and news data through the system background to provide data support for optimizing the recommendation model. The system implementation adopts Python programming language and provides recommendation service based on collaborative filtering algorithm. The front end uses a modern Web framework to provide a friendly user interface, and the back end uses a Flask or Django framework to process data storage and recommendation logic. In addition, the system design focuses on data security and scalability, and provides administrators with system optimization and user behavior analysis functions.
The implementation of this system can not only provide users with personalized news recommendation services, but also help the platform managers to optimize the recommendation algorithm and improve the accuracy of the news content. Through the research and implementation of this topic, readers will be able to understand the design and development process of the news recommendation system based on the collaborative filtering algorithm, and how to develop the efficient recommendation system combined with Python.
Key Words:News Information Recommendation System; Separation Of Front And Rear End; Data Visualization; Flask / Django; Python
目 录
摘 要.............................................................................. 1
Abstract............................................................................ 1
第1章 绪论.................................................................... 1
1.1 系统开发背景................................................... 1
1.2 系统开发的目的和意义................................... 1
1.3 系统达到的模板及内容................................... 1
1.4 系统开发主要技术........................................... 2
1.4.1 Python..................................................... 2
1.4.2 Django..................................................... 2
1.4.3 Pandas..................................................... 2
1.4.4 Vue.......................................................... 3
第2章 系统分析............................................................ 4
2.1 可行性分析....................................................... 4
2.1.1 技术可行性............................................ 4
2.1.2 经济可行性............................................ 4
2.1.3 操作可行性............................................ 4
2.1.4 操作可行性............................................ 5
2.2 需求分析........................................................... 5
2.2.1 功能需求................................................ 5
2.2.2 数据需求................................................ 8
2.2.3 数据字典.............................................. 10
2.2.4 性能需求.............................................. 12
第3章 系统设计.......................................................... 13
3.1 数据库设计..................................................... 13
3.1.1 数据库概念设计.................................. 13
3.1.2数据库逻辑设计................................... 18
3.1.3数据库物理设计................................... 23
3.2 程序设计......................................................... 24
3.2.1 总体设计.............................................. 24
3.2.2详细设计............................................... 26
第4章 系统实现.......................................................... 30
4.1 数据库实现................................................... 30
4.1.1 表实现................................................ 30
4.1.2 关系图................................................ 31
4.2 程序实现....................................................... 31
第5章 系统测试.......................................................... 39
5.1 系统测试的目的............................................. 39
5.2 系统测试......................................................... 39
5.2.1 数据库性能测试.................................. 39
5.2.2 后端接口测试...................................... 39
5.3.3 模块测试.............................................. 41
第6章 结论.................................................................. 43
参考文献........................................................................ 44
致谢................................................................................ 46
第1章 绪论
1.1 系统开发背景
随着互联网技术的快速发展,用户对新闻内容的获取方式和个性化需求日益增加。传统的新闻推荐方法往往依赖于人工编辑或简单的算法,难以满足多样化的用户需求,且无法根据用户的兴趣和行为提供精准的推荐。同时,在信息量庞大的今天,如何从海量新闻中筛选出对用户最相关的内容,成为新闻平台亟待解决的问题。随着大数据和人工智能技术的进步,新闻推荐系统逐渐向智能化、个性化方向发展,能够通过分析用户的历史行为、阅读偏好以及实时数据,向用户推送定制化的新闻内容。
在此背景下,基于协同过滤算法的新闻推荐系统应运而生。该系统通过分析用户的历史数据和兴趣偏好,为用户提供个性化的新闻推荐服务,同时通过管理员权限的设置,帮助平台优化新闻内容和管理系统。系统的目标是提升用户体验,优化新闻推送效果,增强平台的运营效率,并为管理员提供数据支持,推动新闻行业的智能化发展。
1.2 系统开发的目的和意义
传统新闻推荐系统的设计多基于简单的规则或人工推荐,这种方法不仅效率低下,而且难以适应复杂多变的用户需求。基于协同过滤的新闻推荐系统,通过智能化的算法,能够有效地解决这些问题。该系统利用用户的历史数据、兴趣和阅读行为进行精准的推荐,同时通过分析用户之间的相似性,进一步提升新闻的推荐质量。
该系统的实现突破了传统推荐方法的局限,充分发挥了协同过滤算法的优势,通过大规模数据处理和分析,帮助新闻平台实现智能推荐与个性化推送。系统能够分析不同用户的阅读偏好,进而为用户提供他们感兴趣的新闻内容,使得新闻推荐更加精准有效。同时,管理员可通过后台数据分析,获取用户行为的趋势和偏好,进一步优化新闻内容,提升平台的内容推荐效率。该系统为用户带来了更好的新闻获取体验,为新闻平台的运营和管理提供了科学的数据支持。
1.3 系统达到的模板及内容
为满足新闻平台的个性化推荐需求,本系统设计了基于协同过滤算法的新闻推荐服务,旨在提升用户体验并优化新闻内容的精准推送。系统应符合以下要求:
(1)响应时间:在正常网络环境下,用户请求新闻推荐后,系统返回推荐结果的时间应控制在3秒以内,确保用户获得及时的新闻推荐服务。
(2)安全性:用户需要登陆后才能使用完整的个性化推荐和浏览服务,未登陆时只提供部分新闻信息查询功能。管理员拥有全面的系统管理权限,包括数据管理、用户管理等。
(3)吞吐量:系统应具备较高的吞吐量,能够在单位时间内处理超过100次用户请求,保证在高并发情况下系统的稳定运行,提升用户体验。
(4)程序友好性:界面设计应简洁清晰,适配不同设备(如手机、平板、PC)的浏览需求,操作流畅、直观,能够满足用户对新闻推荐、阅读、管理等多样化需求,提升用户的互动体验。
1.4 系统开发主要技术
1.4.1 Python
Python 是一种高级编程语言,因其简单、易学和功能强大而广受欢迎。Python 提供了广泛的标准库和第三方模块,能够处理多种任务,包括数据分析、人工智能、网页开发和自动化等。其语法简洁、代码易读,支持面向对象编程和函数式编程,能够大大提高开发效率。Python 拥有丰富的社区支持和大量的文档资源,开发者可以快速解决开发中的问题。尤其在数据分析和机器学习领域,Python 已成为主流语言,常用的库如 NumPy、Pandas、TensorFlow 和 scikit-learn,都为数据科学家和工程师提供了强大的支持。因此,Python 是开发数据分析、可视化和人工智能应用的理想选择,具有极高的应用价值。
1.4.2 Django
Django 是一个基于 Python 的开源 web 框架,采用 MTV(Model-Template-View)设计模式,旨在简化 web 开发过程。Django 提供了许多内置功能,如自动化的数据库管理、用户认证、URL 路由系统、表单处理和会话管理等,使开发者能够快速构建复杂的 web 应用。它遵循 DRY(Don't Repeat Yourself)原则,提倡重用代码和减少冗余,从而提高了开发效率。Django 强调安全性,内建防范 CSRF、SQL 注入、XSS 攻击等安全机制。此外,Django 拥有强大的文档和活跃的社区支持,开发者可以轻松获得帮助。其灵活的架构和强大的扩展性,使其适用于从小型项目到大型企业级应用的开发。
1.4.3 Pandas
Pandas 是 Python 中一个广泛使用的数据分析库,专为高效数据操作和分析而设计。它提供了易于操作的数据结构,如 DataFrame 和 Series,能够处理各种类型的结构化数据。Pandas 能够高效地进行数据清洗、数据筛选、数据合并、缺失值处理等常见数据操作,同时提供强大的时间序列处理功能,使得处理日期和时间数据变得更加便捷。通过 Pandas,用户可以轻松加载、过滤、转换和汇总数据,支持与其他数据分析工具的无缝集成,特别是在数据科学、金融分析和机器学习领域得到广泛应用。其强大的功能和高效的性能,使得 Pandas 成为数据科学家和分析师不可或缺的工具之一。
1.4.4 Vue
Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面,尤其适用于单页应用(SPA)的开发。Vue 提供了响应式的数据绑定和组件化开发方式,允许开发者将界面拆分为多个可复用的组件,简化了开发和维护过程。Vue 的核心库只关注视图层,并与其他库或现有项目轻松集成。其灵活性使得 Vue 不仅适用于小型项目,也能用于大型应用的开发。Vue 的响应式机制使得数据和视图之间的同步变得简单且高效,且具有较小的文件体积,快速的加载速度。Vue 具有丰富的文档、完善的社区支持和大量的第三方插件,帮助开发者快速构建现代化的 web 应用。因此,Vue.js 已成为开发人员在构建动态、交互式网页应用时的首选工具之一。
第2章 系统分析
2.1 可行性分析
可行性分析是为了对整个系统在技术、市场、资金等多个方面进行的研究分析评估。其中本文进行的可行性分析包括技术可行性、经济可行性、操作可行性和社会可行性。
2.1.1 技术可行性
本系统采用的是B/S架构,前端使用Vue.js框架(Vue 2.0+Element UI)进行开发,后端则基于Python语言的Flask或Django框架,数据库使用MySQL 8.0。以上技术栈成熟且具有广泛的开发支持,能够有效保证系统开发的顺利进行。Vue.js作为轻量级前端框架,具有灵活的组件化架构和数据双向绑定特性,能极大地简化前端开发,适合快速开发响应式网页。Element UI是基于Vue的UI框架,提供了大量高质量的组件,能够提高开发效率并增强用户体验。后端使用Flask或Django框架,Flask以其轻量和灵活性适合快速原型开发,而Django则适合构建功能完善的复杂应用,两者均能够高效处理用户请求、数据交互和推荐算法的核心逻辑。系统使用MySQL作为数据库,MySQL以其高性能和高可靠性为系统提供稳定的存储方案,能够高效管理用户数据、新闻内容和推荐结果。通过前后端分离的架构,系统能够在保证高效数据传输的同时,降低前后端耦合,提高维护和开发效率。因此,所选技术栈为系统的稳定运行提供了强有力的技术保障,确保系统在技术层面具备可行性。
2.1.2 经济可行性
随着新闻流媒体和在线阅读的迅猛发展,个性化新闻推荐系统成为新闻平台提升用户粘性和体验的关键工具。全球范围内,个性化推荐系统的市场正在快速扩展,尤其在新闻平台上,用户对精准推荐和智能化服务的需求日益增加。我国新闻行业也同样受益于这一趋势,尤其在移动互联网和智能设备普及的背景下,用户对于个性化新闻内容的需求不断增长。本系统采用前后端分离的开发模式,可以同时进行前端和后端开发,从而有效缩短开发周期,降低人力成本。基于Python的开发框架,如Flask和Django,具有快速开发、低成本和强大社区支持的优势,有助于降低开发和维护成本。系统数据库使用MySQL作为数据存储解决方案,其开源特性消除了昂贵的许可费用,仅需支付服务器和运营成本即可。系统上线后的主要运营成本为服务器租赁、数据存储和计算费用,以及可能的系统升级和优化费用。综上所述,系统具备较低的开发和运营成本,投资回报率高,因此在经济上具有较强的可行性。
2.1.3 操作可行性
本系统通过Vue.js框架实现单页应用(SPA),确保用户界面的交互流畅、响应迅速,界面简洁直观,操作便捷。用户仅需一台能够连接互联网的设备,通过浏览器即可轻松访问系统,无需额外安装客户端。Vue.js提供的路由技术能够帮助开发人员高效管理前端页面,实现系统内的各项操作,如浏览新闻推荐、查看文章详情等,都能迅速响应用户请求,从而提升整体用户体验。新闻推荐系统的目标用户群体广泛,涵盖了普通用户和专业的新闻分析人员。系统的操作界面设计注重简洁性与直观性,保证用户无需复杂学习即可掌握基本操作。核心功能如新闻推荐、内容分析和展示等,均通过良好的交互设计简化,确保普通用户能够轻松操作。后端基于Python的推荐算法(如基于协同过滤、矩阵分解等),能够自动化处理用户行为数据并生成精准推荐,确保系统的推荐效果和用户体验。通过这些技术和设计,系统操作具有高度可行性,能够提供流畅、直观的用户交互体验。
2.1.4 操作可行性
随着智能推荐技术的快速发展,新闻推荐系统已经成为各大新闻平台提升用户体验和运营效率的核心技术之一。根据市场研究,全球及中国新闻行业对智能推荐的需求持续增长,尤其是在移动互联网和智能设备普及的背景下,用户对于个性化新闻推荐的需求日益增强。特别是中国市场,随着新闻消费方式的转变,个性化推荐在提升用户活跃度和满意度方面发挥着至关重要的作用。通过精准推荐,用户不仅能够提高新闻获取效率,还能发现更多符合兴趣的内容。因此,开发一款能够根据用户兴趣提供个性化推荐的新闻信息推荐系统,不仅能够提升用户满意度,还能推动新闻平台的运营效率和用户粘性。基于Python技术栈的新闻推荐,具备良好的市场前景和社会需求,符合当前用户对智能新闻推荐服务的不断增长需求,具有较强的社会认可度和发展潜力。
2.2 需求分析
需求分析旨在充分了解用户各方面需求,并按照用户需求对整个系统进行相关功能的开发,将用户需求转化为文档,从而确定后续工作。
2.2.1 功能需求
本系统为基于Python的新闻信息推荐,旨在提供个性化的新闻推荐服务和相关的可视化分析功能。系统主要面向三类用户角色:游客,普通用户和管理员。系统功能设计需满足不同角色的需求,同时确保用户体验与后台管理的高效性。
具体功能需求如下:
(1)登陆功能:登陆模块根据用户身份自动判断用户类型,并展示不同的界面。
普通用户登陆:用户可输入用户名和密码进行登陆,登陆后可以访问新闻推荐、时事热点信息等功能。
管理员登陆:管理员可以通过账号和密码登陆,登陆后可进入后台管理界面,进行用户管理、新闻推荐信息管理、时事热点管理等操作。
(2)注册功能:注册模块仅提供普通用户注册,不允许管理员注册。用户注册时需填写用户名(2-7个字符,包含中文汉字),密码(6-18位,包含字母和数字)。所有信息符合要求后提交后台校验,合格则完成注册,不符合则提示错误信息。
(3)新闻信息浏览功能:用户登陆后可以浏览系统的新闻推荐信息,系统应根据用户的偏好进行个性化推荐,并提供分页显示、快速加载等优化措施。用户可以查看推荐新闻的基本信息。
(4)时事热点信息浏览功能:提供热点新闻推荐功能,使用户能够及时了解国内外的热点、时事新闻;
(5)新闻评价功能:用户可将信息进行评价来反馈当前新闻在用户的印象。
(6)查看新闻详情功能:用户可以查看新闻的详细信息。同时,用户可以对新闻进行评论等操作。
(7)新闻信息检索功能:用户可以通过关键词检索新闻信息,检索结果将提供相关新闻的列表,并支持排序和筛选功能。
(8)个人中心功能:用户登陆后可以访问个人中心,查看个人信息、收藏新闻、查看历史浏览记录等。用户可在个人中心修改个人资料、密码等。
(9)管理员管理功能:管理员可以对系统进行后台管理,管理用户、新闻推荐信息、时事热点信息等。
(10)用户管理功能:管理员可查看所有用户的信息,并进行删除、修改等操作。
(11)热点新闻推荐功能:提供热点新闻推荐功能,使用户能够及时了解国内外的热点、时事新闻;
(12)新闻分类功能:按照不同的分类(如娱乐、体育、科技等)进行新闻推荐,用户也可以根据自身需求进行分类订阅;
(13)推荐规则设置功能:提供多种推荐规则设置,包括推荐新闻数量、推荐新闻策略等;
(14)用户反馈功能:提供用户反馈、点赞、举报等功能,丰富新闻推荐系统的用户互动性和社区氛围;
系统功能结构设计:系统功能结构设计是指根据用户需求和场景,将系统的功能模块进行细分和划分。本系统根据用户角色将功能划分为用户端和管理员端两大部分。
用户端:登陆注册、浏览新闻推荐、收藏新闻、查看新闻详情、新闻检索、个人中心等功能。
管理员端:登陆管理、用户管理、新闻推荐信息管理等功能。
系统功能结构图如图2.1所示。
图2.1 用户功能模块用例图
图2.2 管理员功能模块用例图
系统流程图:系统流程图是概括地描绘系统操作过程的传统工具,使用图形符号描述系统内的各个部件,清晰明了的向用户描述整个系统的运行流程,能够更加直观的表达系统各功能模块之间的结构。使用系统流程图展示系统的业务流程,系统流程图如下图 2.3 所示。
图2.3系统流程图
2.2.2 数据需求
基于协同过滤的新闻推荐系统的设计与实现课题的数据库需求主要包括:用户信息数据、新闻数据、新闻评价数据、时事热点数据、新闻标签数据以及系统推荐算法等数据。以下是数据流图的描述:
一、数据流图
数据流图(Data Flow Diagram,缩写为DFD)是一种使用图形表示数据在系统内流转及更新的工具,它展示了系统各部分之间的数据交换方式和处理过程。DFD相比传统的功能结构图更加强调数据的输入和输出,使得开发人员可以更清晰地了解程序运行中的数据流向。在本系统中,数据通过用户和管理员进行交互,经过一系列处理后,最终将推荐的新闻信息和可视化结果展示给用户。
(1)系统顶级数据流图
用户通过系统发送请求,系统根据用户的需求返回推荐的新闻列表和可视化结果;管理员则对系统进行管理和数据更新,系统将相关信息返回给管理员。系统的顶级数据流图如图2.4所示。
图2.4系统顶层数据流图
(2)系统一级数据流图
针对顶级数据流图进行拆分,对其中核心功能进行诠释,绘制系统一级数据流图如图 2.5 所示。
图2.5系统一级数据流图
(3)系统二级数据流图
管理员在本系统中所具有的功能包括对新闻库进行管理、对用户信息进行管理、对推荐算法进行调整和更新等。管理员提交新的新闻后,系统接收信息并进行校验,然后将新信息更新到相关的新闻库中。当用户请求新闻推荐时,系统根据用户的历史行为、评分和兴趣标签等数据,生成个性化的新闻推荐列表并展示给用户。
当管理员发布推荐算法更新时,系统接收并处理相关更新信息,并将更新保存到数据库中。当用户请求新闻数据、推荐列表或可视化分析结果时,系统根据请求的相关数据自动处理并将结果展示给用户界面。
根据以上分析,系统二级数据流图如图2.6所示。
1、数据项定义:数据项定义对于数据的正确使用和理解非常重要,可以有效避免数据误解、数据丢失、数据错误等问题的发生。
数据项表如表2.1所示。
表2.1数据项表
|
数据项名 |
数据项含义 |
别名 |
数据类型 |
长度 |
取值范围 |
|
news_id |
新闻数据ID |
新闻数据ID |
int |
0-2147483648 |
|
|
url |
新闻路径 |
新闻标题标题 |
varchar |
中文、英文 |
|
|
title |
标题 |
新闻类别 |
varchar |
中文、英文 |
|
|
date |
发布日期 |
等级 |
varchar |
255 |
中文、英文 |
|
pic_url |
图片路径 |
动态数量 |
varchar |
1000 |
中文、英文 |
|
videourl |
视频路径 |
关注数量 |
varchar |
255 |
中文、英文 |
|
mainpage |
主要内容 |
粉丝数量 |
varchar |
2000 |
中文、英文 |
|
category |
新闻类别 |
个人介绍 |
int |
2 |
0-2147483648 |
|
readnum |
已读数量 |
创建新闻标题数量 |
int |
10 |
0-2147483648 |
|
comments |
评价 |
详情链接 |
int |
10 |
0-2147483648 |
|
origin |
来源 |
收藏数 |
varchar |
2000 |
中文、英文 |
|
keywords |
关键词 |
转发数 |
varchar |
1000 |
中文、英文 |
2、数据结构定义:数据结构指的是在一个应用程序或系统中用来组织和管理数据的逻辑结构,因篇幅限制,仅节选部分核心数据结构进行展示。
数据结构定义表如表2.2所示。
表 2.2数据结构定义表
|
数据结构名称 |
含义说明 |
数据结构组成 |
|
用户 |
数据库中记录用户信息的功能表 |
用户表=用户ID+账户状态+所在用户组+上次登陆时间+手机号码+手机认证+用户名+用户+昵称+密码+邮箱+邮箱认证+头像地址+创建时间+会员等级+会员折扣 |
|
管理员 |
数据库中记录管理员信息的功能表 |
管理员表=姓名+密码+角色 列表+创建时间 |
|
新闻 |
数据库中记录新闻信息的功能表 |
新闻信息表=新闻数据ID+新闻路径+标题+发布日期+图片路径+视频路径+主要内容+新闻类别+已读数量+评价+来源+关键词 |
|
时事热点 |
数据库中记录时事热点信息的功能表 |
时事热点表=时事热点id+标题+正文+创建时间+更新时间 |
四、数据库表结构设计:
收藏信息表:收藏表保存系统中的收藏信息,包括收藏人ID、来源表、来源字段、来源ID、标题、封面、创建时间、更新时间。收藏ID字段为主键,设置为自动增长。
表3.1 collect(收藏信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
collect_id |
int |
10 |
无 |
否 |
收藏ID |
|
user_id |
int |
10 |
无 |
否 |
收藏人ID |
|
source_table |
varchar |
255 |
无 |
是 |
来源表 |
|
source_field |
varchar |
255 |
无 |
是 |
来源字段 |
|
source_id |
int |
10 |
无 |
否 |
来源ID |
|
title |
varchar |
255 |
无 |
是 |
标题 |
|
img |
varchar |
255 |
无 |
是 |
封面 |
|
create_time |
timestamp |
无 |
否 |
创建时间 |
|
|
update_time |
timestamp |
无 |
否 |
更新时间 |
新闻评论表:新闻评论表保存系统中的新闻评论信息,包括评论人ID、回复评论ID、内容、昵称、头像地址、创建时间、更新时间、来源表、来源字段、来源ID。评论ID字段为主键,设置为自动增长。
表3.2 comment(评论信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
comment_id |
int |
11 |
无 |
否 |
评论ID |
|
user_id |
int |
11 |
无 |
否 |
评论人ID |
|
reply_to_id |
int |
11 |
无 |
否 |
回复评论ID |
|
content |
longtext |
无 |
是 |
内容 |
|
|
nickname |
varchar |
255 |
无 |
是 |
昵称 |
|
avatar |
varchar |
255 |
无 |
是 |
头像地址 |
|
create_time |
timestamp |
无 |
否 |
创建时间 |
|
|
update_time |
timestamp |
无 |
否 |
更新时间 |
|
|
source_table |
varchar |
255 |
无 |
是 |
来源表 |
|
source_field |
varchar |
255 |
无 |
是 |
来源字段 |
|
source_id |
int |
10 |
无 |
否 |
来源ID |
新闻分类表:新闻分类表保存系统中的新闻分类信息,包括新闻类型、创建时间、更新时间。新闻分类ID字段为主键,设置为自动增长。
表3.3 news_classification(新闻分类信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
news_classification_id |
int |
11 |
无 |
否 |
新闻类型ID |
|
news_genre |
varchar |
64 |
无 |
是 |
新闻类型 |
|
create_time |
datetime |
无 |
否 |
创建时间 |
|
|
update_time |
timestamp |
无 |
否 |
更新时间 |
新闻表:新闻表保存系统中的新闻信息,包括新闻数据ID、新闻路径、标题、发布日期、图片路径、视频路径、主要内容、新闻类别、已读数量、评价、来源、关键词。新闻数据ID字段为主键,设置为自动增长。
表3.4 news_data(新闻信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
news_id |
int |
11 |
无 |
否 |
新闻数据ID |
|
url |
varchar |
64 |
无 |
是 |
新闻路径 |
|
title |
varchar |
64 |
无 |
是 |
标题 |
|
date |
varchar |
64 |
无 |
是 |
发布日期 |
|
pic_url |
varchar |
64 |
无 |
是 |
图片路径 |
|
videourl |
varchar |
64 |
无 |
是 |
视频路径 |
|
mainpage |
varchar |
64 |
无 |
是 |
主要内容 |
|
category |
text |
无 |
是 |
新闻类别 |
|
|
readnum |
varchar |
64 |
无 |
是 |
已读数量 |
|
comments |
varchar |
255 |
无 |
是 |
评价 |
|
origin |
varchar |
64 |
无 |
是 |
来源 |
|
keywords |
varchar |
64 |
无 |
是 |
关键词 |
时事热点表:时事热点表保存系统中的时事热点信息,包括标题、正文、创建时间、更新时间。时事热点ID字段为主键,设置为自动增长。
表3.5 notice(时事热点信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
news_id |
int |
11 |
无 |
否 |
新闻数据ID |
|
url |
varchar |
64 |
无 |
是 |
新闻路径 |
|
title |
varchar |
64 |
无 |
是 |
标题 |
|
date |
varchar |
64 |
无 |
是 |
发布日期 |
|
pic_url |
varchar |
64 |
无 |
是 |
图片路径 |
|
videourl |
varchar |
64 |
无 |
是 |
视频路径 |
|
mainpage |
varchar |
64 |
无 |
是 |
主要内容 |
|
category |
text |
无 |
是 |
新闻类别 |
|
|
readnum |
varchar |
64 |
无 |
是 |
已读数量 |
|
comments |
varchar |
255 |
无 |
是 |
评价 |
|
origin |
varchar |
64 |
无 |
是 |
来源 |
|
keywords |
varchar |
64 |
无 |
是 |
关键词 |
新闻推荐表:新闻推荐表保存系统中的新闻信息,包括新闻数据ID、新闻路径、标题、发布日期、图片路径、视频路径、主要内容、新闻类别、已读数量、评价、来源、关键词。新闻数据ID字段为主键,设置为自动增长。
表3.6 news_data(新闻推荐信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
news_id |
int |
11 |
无 |
否 |
新闻数据ID |
|
url |
varchar |
64 |
无 |
是 |
新闻路径 |
|
title |
varchar |
64 |
无 |
是 |
标题 |
|
date |
varchar |
64 |
无 |
是 |
发布日期 |
|
pic_url |
varchar |
64 |
无 |
是 |
图片路径 |
|
videourl |
varchar |
64 |
无 |
是 |
视频路径 |
|
mainpage |
varchar |
64 |
无 |
是 |
主要内容 |
|
category |
text |
无 |
是 |
新闻类别 |
|
|
readnum |
varchar |
64 |
无 |
是 |
已读数量 |
|
comments |
varchar |
255 |
无 |
是 |
评价 |
|
origin |
varchar |
64 |
无 |
是 |
来源 |
|
keywords |
varchar |
64 |
无 |
是 |
关键词 |
用户表:用户表保存系统中的用户信息,包括姓名、用户名、身份证号、密码、性别、地址、电话。用户ID字段为主键,设置为自动增长。
表3.7 regular_users(用户信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
regular_users_id |
int |
10 |
无 |
否 |
普通用户ID |
|
user_name |
varchar |
64 |
无 |
是 |
用户姓名 |
|
user_age |
varchar |
64 |
无 |
是 |
用户年龄 |
|
user_gender |
varchar |
64 |
无 |
是 |
用户性别 |
|
tag_recommendation |
varchar |
64 |
无 |
是 |
标签推荐 |
|
examine_state |
varchar |
16 |
无 |
否 |
审核状态 |
|
user_id |
int |
10 |
无 |
否 |
用户ID |
|
create_time |
datetime |
19 |
无 |
否 |
创建时间 |
|
update_time |
timestamp |
19 |
无 |
否 |
更新时间 |
管理员表:管理员表保存系统中的管理员信息,包括姓名、用户名、身份证号、密码、性别、地址、电话。管理员ID字段为主键,设置为自动增长。
表3.8 regular_admin(管理员信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
regular_admin_id |
int |
10 |
无 |
否 |
管理员ID |
|
admin_name |
varchar |
64 |
无 |
是 |
管理员姓名 |
|
admin_age |
varchar |
64 |
无 |
是 |
管理员年龄 |
|
admin_gender |
varchar |
64 |
无 |
是 |
管理员性别 |
|
tag_recommendation |
varchar |
64 |
无 |
是 |
标签推荐 |
|
examine_state |
varchar |
16 |
无 |
否 |
审核状态 |
|
admin_id |
int |
10 |
无 |
否 |
管理员ID |
|
create_time |
datetime |
19 |
无 |
否 |
创建时间 |
|
update_time |
timestamp |
19 |
无 |
否 |
更新时间 |
轮播图表:轮播图表保存系统中的轮播图信息,包括标题、内容、链接、轮播图、点击量、创建时间、更新时间。轮播图ID字段为主键,设置为自动增长。
表3.9 slides (轮播图信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
slides_id |
int |
10 |
无 |
否 |
轮播图ID |
|
title |
varchar |
64 |
无 |
是 |
标题 |
|
content |
varchar |
255 |
无 |
是 |
内容 |
|
url |
varchar |
255 |
无 |
是 |
链接 |
|
img |
varchar |
255 |
无 |
是 |
轮播图 |
|
hits |
int |
10 |
无 |
否 |
点击量 |
|
create_time |
timestamp |
无 |
否 |
创建时间 |
|
|
update_time |
timestamp |
无 |
否 |
更新时间 |
浏览记录表:浏览记录表保存系统中的浏览记录信息,包括浏览记录ID、用户ID、新闻ID、浏览时间。浏览记录ID字段为主键,设置为自动增长。
表3.10 news_api_history(浏览记录信息)表
|
字段名称 |
字段类型 |
长度 |
默认值 |
是否允许为空 |
备注 |
|
userid |
int |
5 |
无 |
否 |
用户ID |
|
history_newsid |
varchar |
1000 |
无 |
否 |
新闻ID |
|
time |
varchar |
20 |
无 |
否 |
浏览时间 |
|
id |
int |
11 |
无 |
否 |
浏览记录ID |
3.1.3数据库物理设计
数据库物理设计侧重于选取合适的 DBMS 系统来进行数据的管理。本系统采用的开源的 MySQL数据库并配置在 Windows 操作系统中,所有的表使用支持事务处理的 Innodb 引擎。具体解析如下。
1、存储结构
(1)数据文件:MySOL的数据文件通常存储在数据目录下,其路径可以在db配置文件中进行设置,不同的存储引擎使用不同类型的数据文件,并且不同 MySOL 版本对于数据文件的命名各不相同。本系统设计的数据浏览记录ID为:D:\MySQL\DATA 中
(2)日志文件:MySQL 的 binlog 日志作用是用来记录 MySQL内部增删改等操作。系统日志浏览记录ID:D:\MySQL\DATA
2、存取方法:本数据库采用索引作为存取结构,使用索引(Index)对数据库中的列进行排序,可以用来提高整个 DMBS 系统的性能,减少响应时间并加快查询速度。系统的存取方法使用的是建立索引,数据库索引表如表 3.11 所示。。
表3.11 数据库索引表
|
表名 |
索引名 |
字段名 |
索引类型 |
|
收藏信息表 |
idx_收藏人ID |
收藏人ID |
普通索引 |
|
idx_来源表_来源ID |
来源表, 来源ID |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
新闻评论表 |
idx_评论人ID |
评论人ID |
普通索引 |
|
idx_回复评论ID |
回复评论ID |
普通索引 |
|
|
idx_来源表_来源ID |
来源表, 来源ID |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
新闻分类表 |
idx_新闻类型 |
新闻类型 |
普通索引 |
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
新闻表 |
idx_新闻标题 |
新闻标题 |
普通索引 |
|
idx_新闻分类 |
新闻分类 |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
时事热点表 |
idx_标题 |
标题 |
普通索引 |
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
个性化新闻表 |
idx_新闻类型 |
新闻类型 |
普通索引 |
|
idx_新闻标题 |
新闻标题 |
普通索引 |
|
|
idx_发布日期 |
发布日期 |
普通索引 |
|
|
用户表 |
idx_用户名 |
用户名 |
普通索引 |
|
idx_身份证号 |
身份证号 |
普通索引 |
|
|
idx_性别 |
性别 |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
管理员表 |
idx_用户名 |
用户名 |
普通索引 |
|
idx_身份证号 |
身份证号 |
普通索引 |
|
|
idx_性别 |
性别 |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
轮播图表 |
idx_标题 |
标题 |
普通索引 |
|
idx_创建时间 |
创建时间 |
普通索引 |
|
|
浏览记录表 |
idx_浏览记录 |
浏览记录 |
普通索引 |
|
idx_用户ID |
用户ID |
普通索引 |
|
|
idx_创建时间 |
创建时间 |
普通索引 |





更多推荐

所有评论(0)