当前位置: 首页 > news >正文

(Java企业 / 公司项目)点赞业务系统设计与完成

按照CSDN文章点赞来进行简单的制作一个点赞和取消点赞的业务需求,当然肯定比他的设计还要简单毕竟这么大的社区。

1.需求分析

点赞功能与其它功能不同,没有复杂的原型和需求,仅仅是一个点赞、取消点赞的操作。
所以,今天我们就不需要从原型图来分析,而是仅仅从这个功能的实现方案来思考。

第一次我们使用的是服务调用openfeign,后来改用了MQ的方式

2.数据结构设计

 这个数据结构设计应该都能看得懂吧,有多个id进行关联,实体业务有很多这里就是举例了两个一个用户评论id ,相关的课程比如他讲的好我给这个课程点赞

CREATE TABLE IF NOT EXISTS `liked_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
`user_id` bigint NOT NULL COMMENT '用戶id',
`biz_id` bigint NOT NULL COMMENT '点赞的业务(目标)id',
`biz_type` VARCHAR(16) NOT NULL COMMENT '点赞的业务类型',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT   '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_biz_user` (`biz_id`,`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_0900_ai_ci COMMENT='点赞记录表';

3.创建项目模块

只要先创建这些模块就好了,后面会一步一步的写这些代码的

3.业务需求

  1.  通用:点赞业务在设计的时候不要与业务系统耦合,必须同时支持不同业务的点赞功能
  2.  独立:点赞功能是独立系统,并且不依赖其它服务。这样才具备可迁移性。
  3.  并发:一些热点业务点赞会很多,所以点赞功能必须支持高并发
  4.  安全:要做好并发安全控制,避免重复点赞

从表面来看,点赞功能要实现的接口就是一个点赞接口。不过仔细观察所有的点赞⻚面,
你会发现点赞按钮有灰色点亮两种状态。
也就是说我们还需要实现查询用戶点赞状态的接口,这样前端才能根据点赞状态渲染不同
效果。因此我们要实现的接口包括:
• 点赞/取消点赞
• 根据多个业务id批量查询用戶是否点赞多个业务

 4.接口设计

需求:用户可以给我喜欢的回答,笔记等点赞,也可以取消点赞

请求参数首先要包含点赞有关的数据,并且要标记是点赞还是取消:
        • 点赞的目标业务id:bizId
        • 谁在点赞(就是登陆用戶ÿ


http://www.mrgr.cn/news/23919.html

相关文章:

  • HAProxy--高性能反向代理
  • Windows远程桌面授权远程代码执行漏洞CVE-2024-38077(POC、EXP)
  • 6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)
  • GitLab CI Runner安装
  • HTML/CSS/JS学习笔记 Day4(HTML--C3 表格)
  • 交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输
  • 面试题—Java基础
  • 具有RC反馈电路的正弦波振荡器(文氏桥振荡器+相移振荡器+双T振荡器)
  • Linux学习-ELK(一)
  • MybatisPlus的学习
  • LLM大模型学习:AI大模型原理、应用与未来趋势!
  • 如何在使用窗口函数的时候使用groupby
  • 02 Docker基本管理
  • 数据结构 | 深入理解顺序表与链表
  • Python 数学建模——方差分析
  • Java+vue的医药进出口交易系统(源码+数据库+文档)
  • Java中的常用类及包装类
  • Camera2 预览旋转方向、拍照、录像成像旋转
  • JAVA今日分享-30道常见的Java+MyBatis面试题
  • Hive SQL查询汇总分析