1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Wind_Jerry-AZAZ

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
AZAZ音视频数据库表结构设计文档.md 20 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.06.2025 00:05 bc35c59

Документация по структуре таблиц базы данных AZAZ

Структура таблиц базы данных AZAZ

1. Обзор таблиц проектной базы данных

Имя таблицы Описание таблицы Примечания
tb_user Таблица пользователей Сохраняет информацию о пользователях системы
tb_video Таблица видео Сохраняет информацию о видео
tb_like Таблица лайков Сохраняет информацию о лайках пользователей и видео
tb_collect Таблица закладок Сохраняет информацию о закладках пользователей и видео
tb_follow Таблица подписок Сохраняет информацию о подписках пользователей
tb_comment Таблица комментариев Сохраняет информацию о комментариях пользователей к видео или другим комментариям
tb_private_message Таблица личных сообщений Сохраняет информацию о личных сообщениях пользователей друг к другу

2. Схема таблиц базы данных

![Схема таблиц базы данных](E:\Code\Java\JavaWeb\AZAZ\resource\imgs\Схема таблиц базы данных.png)

Таблица tb_user - Таблица информации о пользователяхТаблица пользователей, сохраняет базовую информацию о пользователях| Поле | Тип | Ограничения | Примечания |

| ------------ | ------------------- | ------------------ | ---------------------------- | | id | int unsigned | Непустое, автоинкремент | Первичный ключ | | phone | char(11) | Непустое, уникальное | Номер телефона, логин | | username | varchar(20) | Непустое | Имя пользователя | | password | varchar(32) | Непустое | Пароль, хранится в виде md5 | | salt | char(5) | По умолчанию NULL | Соль для шифрования пароля, длина 5 | | image | varchar(255) | По умолчанию NULL | URL аватара пользователя | | signature | varchar(64) | По умолчанию NULL | Личная подпись пользователя | | status | tinyint(1) unsigned | По умолчанию нормальное | 0 - нормальное, 1 - заблокированное | | attention | int | По умолчанию 0 | Количество пользователей, на которых подписан текущий пользователь | | followers | int | По умолчанию 0 | Количество подписчиков | | works | int | По умолчанию 0 | Количество работ пользователя | | likes | int | По умолчанию 0 | Количество лайков | | created_time | timestamp | Непустое, по умолчанию текущее время | Время регистрации | | updated_time | timestamp | Непустое, по умолчанию текущее время | Время обновления |SQL DROP TABLE IF EXISTS `tb_user`; CREATE TABLE `tb_user` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'Основной ключ', `phone` char(11) COLLATE utf8mb4_unicode_ci NOT NULL UNIQUE COMMENT 'Номер телефона, логин', `username` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Имя пользователя', `password` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Пароль, md5-шифрование', `salt` char(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Соль для пароля', `image` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Аватар', `signature` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Персональная подпись', `status` tinyint unsigned DEFAULT 0 COMMENT '0 - нормальное состояние\n1 - заблокировано', `attention` int DEFAULT 0 COMMENT 'Количество подписчиков', `followers` int DEFAULT 0 COMMENT 'Количество фанатов', `works` int DEFAULT 0 COMMENT 'Количество работ', `likes` int DEFAULT 0 COMMENT 'Количество лайков', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата обновления', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица с информацией о пользователях';### tb_video Таблица с информацией о видеоСохраняет информацию о видео| Поле | Тип | Ограничения | Примечания | | ----------- | ----------------- | ------------------ | ---------------------------------------- | | id | bigint unsigned | Непустое, автоинкремент | Первичный ключ | | author_id | int unsigned | Непустое | ID автора | | title | varchar(64) | По умолчанию NULL | Описание видео, отображается в левом нижнем углу (по аналогии с TikTok) | | section | tinyint unsigned | По умолчанию 0 | Классификация видео, 0 - популярное, остальное - ожидается | | cover_url | varchar(255) | Непустое | URL обложки видео | | video_url | varchar(255) | Непустое | URL хранения видео | | likes | int | По умолчанию 0 | Количество лайков видео | | collects | int | По умолчанию 0 | Количество сохранений видео | | comments | int | По умолчанию 0 | Количество комментариев к видео | | status | tinyint unsigned | По умолчанию "нормальное видимое" | Статус видео. 0 - нормальное, 1 - удалено | | created_time | timestamp | Непустое, по умолчанию текущее время | Время публикации | | updated_time | timestamp | Непустое, по умолчанию текущее время | Время обновления |SQL DROP TABLE IF EXISTS tb_video; CREATE TABLE tb_video ( id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Основной ключ', author_id int unsigned NOT NULL COMMENT 'Автор видео', title varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Краткое описание видео', section tinyint unsigned DEFAULT 0 COMMENT '0 - популярная категория\n1 - не определена', cover_url varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci COMMENT 'URL обложки видео', video_url varchar(255) NOT NULL COLLATE utf8mb4_unicode_ci COMMENT 'URL видео', status tinyint unsigned DEFAULT 0 COMMENT '0 - активно\n1 - удалено и недоступно', likes int DEFAULT 0 COMMENT 'Общее количество лайков', collects int DEFAULT 0 COMMENT 'Общее количество сохранений', comments int DEFAULT 0 COMMENT 'Общее количество комментариев', create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания', update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Дата обновления', PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица информации о видео';### Таблица tb_like - Таблица лайков

Сохраняет информацию о лайках пользователей на видео

Поле Тип Ограничения Комментарий
id bigint unsigned Не пустое, автоинкремент Основной ключ
author_id int unsigned Не пустое ID автора видео
video_id bigint unsigned Не пустое ID видео
user_id int unsigned Не пустое ID пользователя, который поставил лайк
created_time timestamp Не пустое, по умолчанию текущее время Время постановки лайка
DROP TABLE IF EXISTS `tb_like`;
CREATE TABLE `tb_like` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Основной ключ',
  `author_id` int unsigned NOT NULL COMMENT 'Автор видео',
  `video_id` bigint unsigned NOT NULL COMMENT 'ID видео, на которое поставлен лайк',
  `user_id` int unsigned NOT NULL COMMENT 'ID пользователя, который поставил лайк',
  `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица лайков пользователей';

Таблица tb_collect - Таблица избранных материалов

Сохраняет отношения избранных материалов между пользователями и видео| Поле | Тип | Ограничения | Примечания | | ----------- | ------------------- | -------------------- | ----------------- | | id | bigint unsigned | Не пустое, автоинкремент | Первичный ключ | | author_id | int unsigned | Не пустое | ID автора | | video_id | bigint unsigned | Не пустое | ID видео | | user_id | int unsigned | Не пустое | ID пользователя, добавившего в избранное | | created_time | timestamp | Не пустое, по умолчанию текущее время | Время добавления в избранное |```SQL DROP TABLE IF EXISTS tb_collect; CREATE TABLE `tb_collect` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Первичный ключ', `author_id` int unsigned NOT NULL COMMENT 'Автор видео', `video_id` bigint unsigned NOT NULL COMMENT 'ID видео, добавленного в избранное', `user_id` int unsigned NOT NULL COMMENT 'ID пользователя, добавившего в избранное', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Время создания', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица избранных материалов пользователей';


### Таблица подписок `tb_follow`

Сохраняет отношения подписок между пользователями

| Поле        | Тип                | Ограничения         | Примечания           |
| ----------- | ------------------- | -------------------- | --------------------- |
| id          | bigint unsigned     | Не пустое, автоинкремент | Первичный ключ       |
| follow_id   | int unsigned        | Не пустое           | ID пользователя, на которого подписан |
| user_id     | int unsigned        | Не пустое           | ID пользователя, который подписывается |
| created_time | timestamp          | Не пустое, по умолчанию текущее время | Время подписки       |

```SQL
DROP TABLE IF EXISTS `tb_follow`;
CREATE TABLE `tb_follow` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Первичный ключ',
  `follow_id` int unsigned NOT NULL COMMENT 'ID пользователя, на которого подписан',
  `user_id` int unsigned NOT NULL COMMENT 'ID пользователя, который подписывается',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Время создания',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица подписок пользователей';
```### Таблица комментариев
Сохранение пользовательских комментариев к видео и отзывам

| Поле        | Тип             | Ограничения       | Примечания                                     |
| ----------- | --------------- | ------------------ | ---------------------------------------------- |
| id          | bigint unsigned | Не пустое, автоинкремент | Первичный ключ                                |
| video_id    | bigint unsigned | Не пустое         | ID видео                                       |
| user_id     | int unsigned    | Не пустое         | ID пользователя, оставившего комментарий      |
| parent_id   | bigint unsigned | Не пустое, по умолчанию 0 | ID родительского комментария, если это первый уровень, то 0 |
| answer_id   | bigint unsigned | Не пустое, по умолчанию 0 | ID ответа на комментарий, если это первый уровень, то 0 |
| content     | varchar(255)    | Не пустое         | Содержание комментария                        |
| liked_num   | bigint unsigned | Не пустое         | Количество лайков, по умолчанию 0              |
| status      | tinyint unsigned | Не пустое, по умолчанию 0 | Статус комментария. 0 - нормальный, 1 - удален |
| created_time | timestamp      | Не пустое, по умолчанию текущее время | Время создания                               |
| updated_time | timestamp      | Не пустое, по умолчанию текущее время | Время обновления                             |```SQL
DROP TABLE IF EXISTS `tb_comment`;
CREATE TABLE `tb_comment` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Первичный ключ',
  `video_id` bigint unsigned NOT NULL COMMENT 'ID видео',
  `user_id` int unsigned NOT NULL COMMENT 'ID пользователя, оставившего комментарий',
  `parent_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT 'ID родительского комментария, если это первый уровень, то 0',
  `answer_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT 'ID ответа на комментарий, если это первый уровень, то 0',
  `content` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Содержание комментария',
  `liked_num` bigint UNSIGNED NULL DEFAULT NULL COMMENT 'Количество лайков',
  `status` tinyint unsigned DEFAULT 0 COMMENT '0 - нормальный, 1 - удален',
  `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Время создания',
  `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Время обновления',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Таблица комментариев';

Таблица личных сообщений tb_private_messageПользователи могут обмениваться личными сообщениями, сохраняя информацию о них.

Поле Тип Ограничения Примечания
id bigint unsigned Не может быть пустым, автоинкремент Первичный ключ
sender_id bigint unsigned Не может быть пустым ID отправителя
receiver_id bigint unsigned Не может быть пустым ID получателя
message_type tinyint unsigned По умолчанию 0 0 — личное сообщение, 1 — сообщение от друга, 2 — системное сообщение
message_content varchar(128) Не может быть пустым Содержание сообщения
status tinyint unsigned По умолчанию "нормальное" Статус сообщения. 0 — нормальное, 1 — удалено
created_time timestamp Не может быть пустым, по умолчанию текущее время Время отправки
CREATE TABLE tb_private_message (
id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key Id',
sender_id bigint unsigned NOT NULL COMMENT 'ID sender',
receiver_id bigint unsigned NOT NULL COMMENT 'ID receiver',
message_type tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Message type, 0: regular message, 1: friend message, 2: system message',
message_content varchar(128) NOT NULL COMMENT 'Message content',
status tinyint unsigned NOT NULL DEFAULT '0' COMMENT 'Message status: 0 — normal, 1 — deleted',
created_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Send time',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='Private message table';

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Wind_Jerry-AZAZ.git
git@api.gitlife.ru:oschina-mirror/Wind_Jerry-AZAZ.git
oschina-mirror
Wind_Jerry-AZAZ
Wind_Jerry-AZAZ
master