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

| ------------ | ------------------- | ------------------ | ---------------------------- |
| 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='Таблица лайков пользователей';
Сохраняет отношения избранных материалов между пользователями и видео| Поле | Тип | Ограничения | Примечания |
| ----------- | ------------------- | -------------------- | ----------------- |
| 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 )