一、个人中心主页
1. 主页元素
- 基本信息:
昵称
抖音号
头像
性别 1:男 0:女 2:保密
个人简介
生日
个人介绍的背景图
关注~我的关注博主总数量
粉丝~我的粉丝总数
获赞~用户获赞总数,视频博主(点赞/喜欢)总和
关注详情列表
粉丝详情列表
- 编辑资料元素
国家
省份
城市
区县
- 设置
头像、昵称、个人优势介绍、个人作品
- 视频相关
作品、私密、赞过
2. 表设计
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` varchar(24) NOT NULL,
`mobile` varchar(32) NOT NULL COMMENT '手机号',
`nickname` varchar(16) NOT NULL COMMENT '昵称,媒体号',
`imooc_num` varchar(16) NOT NULL COMMENT '抖音号,公众号,唯一标识,需要限制修改次数,比如终生1次,每年1次,每半年1次等,可以用于付费修改。',
`face` varchar(128) NOT NULL COMMENT '头像',
`sex` int(11) NOT NULL COMMENT '性别 1:男 0:女 2:保密',
`birthday` date NOT NULL COMMENT '生日',
`country` varchar(32) DEFAULT NULL COMMENT '国家',
`province` varchar(32) DEFAULT NULL COMMENT '省份',
`city` varchar(32) DEFAULT NULL COMMENT '城市',
`district` varchar(32) DEFAULT NULL COMMENT '区县',
`description` varchar(100) NOT NULL COMMENT '简介',
`bg_img` varchar(255) DEFAULT NULL COMMENT '个人介绍的背景图',
`can_imooc_num_be_updated` int(1) NOT NULL COMMENT '慕课号能否被修改,1:默认,可以修改;0,无法修改',
`created_time` datetime NOT NULL COMMENT '创建时间 创建时间',
`updated_time` datetime NOT NULL COMMENT '更新时间 更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
3. 计数方案评估
个人中心页面上有3处属于计数范畴:
关注~我的关注博主总数量
粉丝~我的粉丝总数
获赞~用户获赞总数,视频博主(点赞/喜欢)总和
传统方案:
存储数据库,计数使用总数求conut,当数据量达到上亿级别对数据库压力,是非常大的,真实的抖音app这3项计数是非常可观的。
优雅方案:
redis本身就支持计数,我们计数时只需要获取2个函数即可,非常方便。因此,后面的计数相关功能点都采用redis来做计数。
二、接口设计
2.1. 分类归档
-
基础接口
-
计数相关
关注详情列表
粉丝详情列表
- 视频相关
作品列表、私密列表、赞过视频列表