個人博客網:https://wushaopei.github.io/ (你想要這裏多有)
一、短視頻項目產品設計介紹:
該項目爲仿抖音的短視頻項目,主要模塊有後臺短視頻管理模塊、搜索模塊、登錄註冊模塊、視頻詳情模塊、個人中心、視頻列表模塊等
1、視頻詳情模塊
在該模塊中,視頻與音頻的關係有以下幾種:
- 視頻+原聲
- 視頻+背景音樂
功能點分析:
- 頭像,跳轉個人中心
- 收藏,(五角星)
- 評論,(窗口)
- 轉發,(信函+箭頭)
- 首頁(左下角)
- 關注的人的資訊(正下方中間的眼睛)
- 個人中心(右下角)
轉發按鈕:
可以轉發分享到微信朋友圈或QQ空間或下載到本地。
舉報用戶:
點擊“舉報用戶”按鈕進入頁面,填寫舉報描述,並提交。
2、視頻列表模塊
視頻瀑布流列表:多個短視頻以縱向排列進行展示
3、登錄註冊模塊
功能點分析:
- 登錄(輸入用戶名、密碼)
- 註冊,點擊橙紅色按鈕跳轉註冊頁面
4、個人中心模塊
個人中心包含的功能點有:
- 粉絲數
- 關注數
- 獲贊數
- 作品列表
- 收藏列表
- 上傳作品按鈕(上傳短視頻)
- 註銷按鈕
- 分享按鈕(右上角三個小圓點)
- 關閉按鈕
作品列表:
收藏列表:
點擊五角星進行收藏,在收藏列表查看。
分享按鈕:
分享按鈕只能將內容發送給相應的人,不能分享到微信朋友圈。
5、搜索模塊
點擊首頁右上角的放大鏡,進入到搜索頁面
功能點分析:
- 搜索框
- 搜索記錄關鍵詞
- 熱搜關鍵詞
6、短視頻管理後臺
首頁:
用戶信息列表:
舉報管理列表:
播放審批:查看視頻內容:
點擊“點我播放”按鈕進行視頻預覽播放
短視頻管理:
bgm管理頁面:
bgm 新增-提交頁面:
bgm 列表:
二、數據庫表結構介紹
用戶信息表:
CREATE TABLE `users` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`username` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用戶名' ,
`password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密碼' ,
`face_image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '我的頭像,如果沒有默認給一張' ,
`nickname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '暱稱' ,
`fans_counts` int(11) NULL DEFAULT 0 COMMENT '我的粉絲數量' ,
`follow_counts` int(11) NULL DEFAULT 0 COMMENT '我關注的人總數' ,
`receive_like_counts` int(11) NULL DEFAULT 0 COMMENT '我接受到的讚美/收藏 的數量' ,
PRIMARY KEY (`id`),
UNIQUE INDEX `id` (`id`) USING BTREE ,
UNIQUE INDEX `username` (`username`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ROW_FORMAT=DYNAMIC
;
用戶粉絲表:
CREATE TABLE `users_fans` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用戶' ,
`fan_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '粉絲' ,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_id` (`user_id`, `fan_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='用戶粉絲關聯關係表'
ROW_FORMAT=DYNAMIC
;
用戶收藏的短視頻關係設計表:
CREATE TABLE `users_like_videos` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用戶' ,
`video_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '視頻' ,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_video_rel` (`user_id`, `video_id`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='用戶喜歡的/贊過的視頻'
ROW_FORMAT=DYNAMIC
;
舉報信息表設計:
CREATE TABLE `users_report` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`deal_user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '被舉報用戶id' ,
`deal_video_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '類型標題,讓用戶選擇,詳情見 枚舉' ,
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '內容' ,
`userid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '舉報人的id' ,
`create_date` datetime NOT NULL COMMENT '舉報時間' ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='舉報用戶表'
ROW_FORMAT=DYNAMIC
;
短視頻表設計:
CREATE TABLE `videos` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '發佈者id' ,
`audio_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用戶使用音頻的信息' ,
`video_desc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '視頻描述' ,
`video_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '視頻存放的路徑' ,
`video_seconds` float(6,2) NULL DEFAULT NULL COMMENT '視頻秒數' ,
`video_width` int(6) NULL DEFAULT NULL COMMENT '視頻寬度' ,
`video_height` int(6) NULL DEFAULT NULL COMMENT '視頻高度' ,
`cover_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '視頻封面圖' ,
`like_counts` bigint(20) NOT NULL DEFAULT 0 COMMENT '喜歡/讚美的數量' ,
`status` int(1) NOT NULL COMMENT '視頻狀態:\r\n1、發佈成功\r\n2、禁止播放,管理員操作' ,
`create_time` datetime NOT NULL COMMENT '創建時間' ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='視頻信息表'
ROW_FORMAT=DYNAMIC
;
搜索關鍵字表設計:
CREATE TABLE `search_records` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '搜索的內容' ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='視頻搜索的記錄表'
ROW_FORMAT=DYNAMIC
;
評論表設計:
CREATE TABLE `comments` (
`id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`father_comment_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL ,
`to_user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL ,
`video_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '視頻id' ,
`from_user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '留言者,評論的用戶id' ,
`comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '評論內容' ,
`create_time` datetime NOT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='課程評論表'
ROW_FORMAT=DYNAMIC
;
bgm 表設計:
CREATE TABLE `bgm` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`author` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL ,
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '播放地址' ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ROW_FORMAT=DYNAMIC
;