点赞服务表设计

点赞服务
设计:
根据不同的产品,不同的业务类型,动态建表,利用simple-shardding实现分表, 根据businessId(业务ID)和userId(用户ID)做双向分表,每种业务类型默认8张表,然后根据productId和businessType确认具体的表名;
支持按多产品、多业务类型、多用户存储和查询

数据库设计
同步信息标识表

CREATE TABLE `synchro_sign` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `sign` tinyint(1) NOT NULL COMMENT '数据标识,用于从缓存往数据库同步数据',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
业务类型表

CREATE TABLE `business_type` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `business_type` varchar(25) NOT NULL COMMENT '业务类型',
  `product_id` bigint(10) NOT NULL COMMENT '产品ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
用户在特定产品点赞数表(产品动态建表)

CREATE TABLE `user_favor_count` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `favor_count` int(8) NOT NULL DEFAULT '0' COMMENT '点赞量',
  `operate_user_id` bigint(10) NOT NULL COMMENT '操作用户ID',
  `create_time` bigint(10) NOT NULL COMMENT '创建时间',
  `update_time` bigint(10) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `operate_user_id` (`operate_user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

用户在特定产品特定业务类型点赞数表(产品和业务类型动态建表,用户ID分表)

CREATE TABLE `user_favor_count_21720_cut_activity_artifact` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `favor_count` int(8) NOT NULL DEFAULT '0' COMMENT '点赞量',
  `operate_user_id` bigint(20) NOT NULL COMMENT '操作用户ID',
  `create_time` bigint(10) NOT NULL COMMENT '创建时间',
  `update_time` bigint(10) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `biz_id` (`operate_user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

特定产品特定业务类型业务数据点赞数表(产品和业务类型动态建表)

CREATE TABLE `business_favor_count_21720_cut_activity_artifact` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `favor_count` int(8) NOT NULL DEFAULT '0' COMMENT '点赞量',
  `business_id` varchar(40) NOT NULL COMMENT '业务数据ID',
  `create_time` bigint(10) NOT NULL COMMENT '创建时间',
  `update_time` bigint(10) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `biz_id` (`business_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

用户在特定产品特定业务类型点赞信息表(产品和业务类型动态建表,用户ID分8张表)

CREATE TABLE `user_favor_21720_cut_activity_artifact_0000` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `business_id` varchar(40) NOT NULL COMMENT '业务数据ID',
  `operate_user_id` bigint(20) NOT NULL COMMENT '操作用户ID',
  `favor_status` tinyint(1) NOT NULL COMMENT '点赞状态',
  `create_time` bigint(10) NOT NULL COMMENT '创建时间',
  `update_time` bigint(10) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `operate_user_id` (`operate_user_id`,`favor_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

特定产品特定业务类型业务数据点赞信息表(产品和业务类型动态建表,业务ID分8张表)

CREATE TABLE `business_favor_21720_cut_activity_artifact_0000` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `business_id` varchar(40) NOT NULL COMMENT '业务数据ID',
  `operate_user_id` bigint(20) NOT NULL COMMENT '操作用户ID',
  `favor_status` tinyint(1) NOT NULL COMMENT '点赞状态',
  `create_time` bigint(10) NOT NULL COMMENT '创建时间',
  `update_time` bigint(10) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `business_id` (`business_id`,`favor_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

用户在特定产品特定业务类型点赞操作历史表(产品和业务类型动态建表,用户ID分8张表)

CREATE TABLE `user_favor_history_21720_cut_activity_artifact_0000` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `business_id` varchar(40) NOT NULL,
  `operate_user_id` bigint(20) NOT NULL,
  `favor_status` tinyint(1) NOT NULL,
  `create_time` bigint(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

特定产品特定业务类型业务数据点赞操作历史表(产品和业务类型动态建表,业务ID分8张表)

CREATE TABLE `business_favor_history_21720_cut_activity_artifact_0000` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `business_id` varchar(40) NOT NULL,
  `operate_user_id` bigint(20) NOT NULL,
  `favor_status` tinyint(1) NOT NULL,
  `create_time` bigint(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

点赞操作相关接口
用户维度统计相关接口
业务维度统计相关接口
操作历史相关接口

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值