(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
        • 谁在点赞&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全能技术师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值