首页 > 其他分享 >点赞收藏评论的基本实现思路

点赞收藏评论的基本实现思路

时间:2023-09-01 18:23:19浏览次数:44  
标签:varchar 数据库 收藏 点赞 思路 前端 255

点赞收藏评论功能的实现思路

1、点赞

1、设计数据库

数据库结构如下(upvote表):

数据库字段类型描述
likeId varchar(255) upvote表的主键可以使用UUID
userId varchar(255) 点赞用户的ID
articleId varchar(255) 点赞的文章
likeStatus int 点赞的状态:0表示未点赞状态,1表示已点赞状态
likeCategory int 1表示点赞,0表示踩

2、前端传送数据给后端

前端通过ajax异步请求,当鼠标点击点赞按钮时发出异步请求,并携带当前文章的ID和当前点赞作者的ID传给后端处理器。

3、后端处理数据并返回Json数据格式

后端接收到前端传来的数据后首先根据userId和articleId判断数据库中是否存在该点赞数据,如果存在首先判断【点赞状态】和【点赞类型】如果点赞类型为【点赞】则直接改变其【点赞状态】,可以使用+1在取余的方式,如果【点赞类型】为【】且【点赞状态】为【未点赞】则改变其【点赞类型】和【点赞状态】。

如果不存在则重新插入一条新的数据。完成操作后,返回根据userId和articleId查询出的upvote对象的Json格式。

4、前端接收数据并根据数据进行相应操作

前端接收到返回的对象后,将其进行转换为前端对象,通过对象中的状态值来判断文章是否被点赞,相应的改变点赞按钮的状态。

5、踩功能的实现

踩功能的实现与上述点赞功能基本相似

1、前端传送数据给后端

当用户点击踩按钮,同样传送数据给后端。

2、后端处理数据并返回Json数据格式

后端接收到前端传来的数据后首先根据userId和articleId判断数据库中是否存在该点赞数据,如果存在首先判断【点赞状态】和【点赞类型】如果点赞类型为【踩】则直接改变其【点赞状态】,如果【点赞类型】为【点赞】且【点赞状态】为【未点赞】则改变其【点赞类型】和【点赞状态】。

如果不存在则重新插入一条新的数据。完成操作后,返回根据userId和articleId查询出的upvote对象的Json格式。

3、前端接收数据并根据数据进行相应操作

此处就不多赘述了

2、收藏

收藏功能的实现和上述点赞功能相类似,甚至比其更容易理解一些

首先第一步还是创建数据库

1、设计数据库

数据库结构如下(collect表):

数据库字段类型描述
collectId varchar(255) collect表的主键,可以使用UUID
userId varchar(255) 收藏用户的ID
articleId varchar(255) 收藏的文章
collectStatus int 收藏的状态:0表示未收藏状态,1表示已收藏状态

2、前端传送数据给后端

与点赞过程像类似,这里就不过多赘述了

3、后端处理数据并返回Json数据格式

与点赞过程像类似,但是判断的逻辑不太一样

判断逻辑:

后端接收到前端传来的数据后首先根据userId和articleId判断数据库中是否存在该收藏数据,如果存在则改变其收藏状态,如果不存在,则新插入一条收藏数据。

4、前端接收数据并根据数据进行相应操作

与点赞过程像类似,这里就不过多赘述了

3、评论

1、设计数据库

数据库结构如下(comment表):

数据库字段类型描述
commentId varchar(255) comment表的主键,可以使用UUID
userId varchar(255) 评论者用户的ID
articleId varchar(255) 评论的文章
commentDetail varchar(1000) 评论内容

2、前端传送数据给后端

前端相关数据给后端

  1. 评论者ID

  2. 评论文章的ID

  3. 评论的内容

3、后端处理数据并返回Json数据格式

每有一条评论传送到后端,后端均保存到数据库,并且增加评论的数量,最后返回新增的评论对象。

4、前端接收数据并根据数据进行相应操作

前端接收到该条评论,并且将其显示在前端页面上

4、总结

以上就是本人实现点赞收藏评论功能的大体思路,希望大家积极留言,共同学习共同进步!!

标签:varchar,数据库,收藏,点赞,思路,前端,255
From: https://www.cnblogs.com/fan129/p/17672626.html

相关文章

  • 【MySQL】MySQL主从复制延迟原因及处理思路
     MySQL主从复制延迟原因及处理思路主库DML请求频繁(TPS较大)主库写请求较多,有大量insert、delete、update并发操作,短时间产生了大量的binlog【原因分析】主库并发写入数据,而从库SQLThread为单线程应用日志,很容易造成relaylog堆积,产生延迟。【解决思路】做sharding,通过s......
  • 电脑技巧:分享几个Win11使用小技巧,值得收藏!
    Windows11作为微软最新推出的操作系统,应该有很多人已经升级使用了,相比之前的Windows10版本,在界面和操作方面上都有很多改进和优化。下面小编给大家整理一下几个Win11实用的小技巧,希望对大家日常使用电脑能提供一些帮助!1、自定义任务栏Windows11的任务栏可以自定义,您可以将常用的......
  • 值得收藏的前端开发必备工具类函数
     /***空值:[undefined,null,NaN,[],{}],注意非空:0,false;*@param{*}value*@returnsBoolean*/functionisEmpty(value){switch(Object.prototype.toString.call(value)){case'[objectUndefined]':returnvalue===vo......
  • iOS加固保护新思路
    ​iOS加固保护新思路(ipaguard产品介绍)技术简介前言iOS加固保护是基于虚机源码保护技术,针对iOS平台推出的下一代加固产品。可以对iOSAPP中的可执行文件进行深度混淆、加固,并使用独创的虚拟机技术对代码进行加密保护,使用任何工具都无法直接进行逆向、破解。对APP进行完整性保......
  • iOS加固保护新思路
    ​ 技术简介前言iOS加固保护是基于虚机源码保护技术,针对iOS平台推出的下一代加固产品。可以对iOSAPP中的可执行文件进行深度混淆、加固,并使用独创的虚拟机技术对代码进行加密保护,使用任何工具都无法直接进行逆向、破解。对APP进行完整性保护,防止应用程序中的代码及资源文件......
  • 抖音订单推送设计思路-基于支付ID而不是订单号来推送
    抖音订单推送设计思路-基于支付ID而不是订单号来推送方案:不是基于订单号来核销和分账的,抖音是基于每一笔抖音支付来做订单推送,核销和分账现象:这样会在抖音的订单中心中会出现很多条订单推送的记录。抖音App订单列表状态如下:待支付,已取消,已支付,已核销抖音文档地址订单同步htt......
  • 基础底层短信服务的设计思路
    1.短信定义模板,根据模板ID,模板内容,模板内容中的符号来替换成真实的内容来发送。可以支持动态的调整短信模板文案。2.如果接入多家短信服务供应商,根据不同的发送比例来配置选择哪家供应商的比例,可以按100来作为基准,然后根据配置大小,每次发送短信的时候,随机生成一个100以内的随机数......
  • 一文搞清楚 iptables 这文太好了不得不收藏
    iptables简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。iptables基础规则(rules)其实就是网络管理员预定义的条件......
  • 图片思路
    steghide分离图片文件steghide--exctract-sfxxx.png不知道口令直接回车 foremost分离图片文件 WINHEX 使用工具QuickCtypto StegSlove将图片的所有通道都切一遍......
  • Java8 新特性全面介绍,强烈建议收藏
    阅读大约10分钟,实用性非常高,建议收藏PC阅读移步文末前言Java8已经公布有一段时间了,种种迹象表明Java8是一个有重大改变的发行版。在JavaCodeGeeks上已经有很多介绍Java8新特性的文章,例如PlayingwithJava8–LambdasandConcurrency、Java8DateTimeAPITu......