最近项目中碰到了一个需求:对一条新闻实现点赞功能(点赞,取消点赞,是否已点赞):
一:一开始是打算在新闻表中用一个字段来记录这条新闻的点赞总数,后面想到假设有很多人对这条新闻进行点赞和取消点赞的操作的话,没做一个操作都要进行一次数据库的读写,会比较消耗性能,所以后面转变了一下思路:设计一张中间表记录下用户id,新闻id,点赞的时候新建一条数据,取消点赞的话就删除一条数据,然后这条新闻的点赞数,是否已点赞(登录用户)就都可以得到了;点赞数的话只要根据新闻id统计下数量即可,是否已点赞:只需根据用户id,新闻id查找是否存在记录即可;我们还可以在中间表中添加一个字段source_type来表示来自哪个终端(web,wechat等),后续就可以统计各个终端的情况了;现在的中间表如下:
新闻点赞表: id 、repId(新闻id)、userId(用户id)、sourceType(来源终端);
二:现在的新闻一般下面都会有网友的评论,虽然项目暂时还无需实现这样的要求,但是我们也可以来思考一下。按照上面点赞功能的思路,评论是不是也可以借鉴一下呢?可能我们会想再加一个关联表:
评论表: id 、repId(新闻id)、userId(用户id)、sourceType(来源终端)、content(评论内容)、createDate(创建时间)、updateDate(修改时间);
这样的话我们就可以实现功能:根据repId获取某条新闻的全部平论、显示评论的时间等;
三:我们在今日头条上看新闻的时候会发现评论也是可以点赞的,那我们就再思考一下,有同学会想和上面的新闻点赞表一样再加个评论点赞表,这样的话其实有些多余,我们可以将原有的新闻点赞表改造一下,添加一个点赞资源类型resourceType(用于表示点赞的是哪类资源,比如新闻、评论),然后还需要再加一个resourceId用来表示具体那条资源,完整表结构如下:
资源点赞表: id 、resourceType(资源类型)、resourceId(资源id)、userId(用户id)、sourceFrom(来源终端);
四:同样类比今日头条,网友可以对评论进行回复,每条评论都有被回复的总数等功能(例如:“xxx回复了xxx:xxxxxxx”),该如何实现呢?
还是通过改造评论表,可以添加一个回复给哪条评论的字段replyTo,其值是被回复的评论的id;最外层的评论(类似组织机构)的replyTo字段设置为0即 可;这样通过sql就可以统计出某条评论的回复数,然后关联用户表即可实现xxx恢复了xxx;改造后的评论表如下:
评论表: id 、repId(新闻id)、replyTo(回复给哪条评论的id)、userId(用户id)、sourceType(来源终端)、content(评论内容)、createDate(创建时间)、updateDate(修改时间);
转载于:https://my.oschina.net/u/3734816/blog/3039255
分享到:
相关推荐
- 数据统计:查看新闻的浏览量、评论数、点赞数等。 - SEO优化:设置新闻的元信息,提高搜索引擎排名。 6. **技术栈**: 除了PHP和数据库之外,系统可能还使用了其他技术,如HTML、CSS、JavaScript进行前端展示...
- **统计分析**:统计新闻的阅读量、点赞数、评论数等,为运营决策提供数据支持。 5. **安全机制**:使用HTTPS协议确保数据传输安全,使用JWT或Session进行用户身份验证,防止未授权访问。同时,SQL注入防护、XSS...
【新闻发布系统的端前后台】是一个基于JavaEE技术的项目,主要涵盖了新闻的发布、浏览、评论以及点赞等核心功能。这个系统分为前端用户界面和后台管理界面,为用户提供了一个完整的新闻信息发布平台。以下是对该项目...
【新闻发布后台管理系统】是一种专为新闻机构或媒体平台设计的管理工具,用于高效地发布、编辑、管理和跟踪新闻内容。这种系统通常包含了多种功能模块,旨在优化新闻的生命周期,从内容创作到发布,再到后期的分析和...
用户可以根据类别浏览和搜索感兴趣的内容,这需要在后台数据库中建立相应的分类表,并在前端界面提供分类选择的下拉菜单。 2. **新闻主题**:每个新闻都有一个独特的主题,是新闻的核心内容。开发者需要在数据库中...
同时,为了保持数据一致性,这个操作通常需要与服务器进行通信,更新后台数据库中的点赞数。 2. **实现方式**: - **前端**:使用HTML和CSS创建点赞按钮的视觉样式,然后用JavaScript(如jQuery或原生JS)编写点击...
【ASP.NET新闻发佈课程设计】是一门针对Web开发初学者和进阶者的实践课程,主要聚焦于使用ASP.NET技术和SQL数据库来构建一个新闻发布系统。在这个项目中,学生将学习如何利用这两种强大的工具来实现一个功能完备、...
【描述】:“后台管理源码 新闻后台管理 基本操作,完美呈现 access数据库!!!!!!!!” 描述中提到使用了“access数据库”,这暗示了系统的数据存储是基于Microsoft Access的。Access是一款关系型数据库管理系统...
总的来说,"基于ASP的新闻管理系统设计与实现"项目是一个综合性的Web开发实践,涵盖了从数据库设计到前后端交互的全过程。通过这个项目,开发者不仅可以巩固ASP编程技能,还能提升对Web应用系统设计和管理的理解。
2. **新闻详情页**:显示完整新闻内容,包括评论、点赞等功能。 3. **分类导航**:根据新闻类别,用户可以选择查看不同类型的新闻。 4. **搜索功能**:用户输入关键词,系统返回匹配的新闻列表。 5. **后台管理**...
数据库设计包括用户表、新闻表、分类表、评论表等,需考虑字段的完整性、关联性,以及数据的增删改查操作。 4.2 数据库需求分析 根据功能需求,分析数据库中需要存储的数据类型和关系,如用户ID、用户名、密码,...
新闻评论系统是一款基于ASP(Active Server Pages)技术并结合了AJAX(Asynchronous JavaScript and XML)的现代Web应用程序。这个系统旨在提供一个高效、实时且交互性强的平台,让用户能够轻松地对新闻进行评论和...
同时,用户可能还具备评论、点赞或分享新闻的功能,增强互动性。 编辑员端则设计用于新闻的编写与审核。编辑员可以创建新的新闻稿件,包括标题、内容、图片和视频等多媒体元素,并提交待审。此外,他们还可以对已...
在本文中,我们将深入探讨如何...这个模块不仅可以满足基本的新闻发布需求,还可以根据具体业务逻辑进行扩展,比如增加评论、点赞等功能。在实际开发过程中,应遵循软件工程的最佳实践,确保代码的可维护性和扩展性。
4. **MySQL/Oracle/SQL Server**:作为后台数据库,存储系统中的新闻信息、用户数据等。 5. **Spring框架**:可能引入了Spring框架,进行依赖注入(DI)和面向切面编程(AOP),简化了对象的管理和事务处理。 6. **...
【SSM+MySQL新闻发布及管理系统】是一个典型的Java Web应用程序,主要利用Spring、SpringMVC和MyBatis(SSM)三大框架以及MySQL数据库构建。这个系统设计的目标是提供一个高效、安全、用户友好的平台,让用户能够...
5. **评论与互动**:用户可以对新闻进行评论,系统需提供评论展示和管理功能,可能还包括举报、点赞等互动元素。 6. **新闻展示**:首页通常会展示最新、最热或者推荐的新闻,用户可以点击进入查看详情。 7. **...
2. **MySQL**:作为数据库管理系统,存储新闻、用户、评论等数据。 3. **HTML/CSS/JavaScript**:构建用户界面,JavaScript用于实现页面的动态交互,如表单验证、异步加载等。 4. **框架**:如Laravel、ThinkPHP等,...
- 评论和点赞功能 - 管理员后台管理 ## 技术选型 本系统采用PHP作为后端开发语言,使用Laravel框架来实现系统的MVC架构。前端采用Bootstrap框架来实现响应式设计和用户界面的开发。 数据库采用MySQL,使用ORM...