Продолжил настраивать БД
This commit is contained in:
parent
acede7d03b
commit
e92f792640
24
TODO.md
24
TODO.md
@ -18,13 +18,35 @@
|
|||||||
- Мыло
|
- Мыло
|
||||||
- Пароль
|
- Пароль
|
||||||
- Айди приглашения
|
- Айди приглашения
|
||||||
- Роли (админ, модер, участник) и права доступа
|
- Роли
|
||||||
|
- Новичок
|
||||||
|
- Может оценивать посты, но не более n в день
|
||||||
|
- Может создавать посты, но не более n в день
|
||||||
|
- Может удалять свои посты
|
||||||
|
- Может устанавливать себе аватарку
|
||||||
|
- Проверенный
|
||||||
|
- Нет лимитов на оценку постов
|
||||||
|
- Нет лимитов на создание постов
|
||||||
|
- Может редактировать свои посты
|
||||||
|
- Может оставлять комментарии
|
||||||
|
- Модератор
|
||||||
|
- Может банить проверенных и новичков
|
||||||
|
- Может удалять чужие посты
|
||||||
|
- Может устанавливать блокировку редактирования поста
|
||||||
|
- Может создавать инвайты
|
||||||
|
- Администратор
|
||||||
|
- Доступ к детальной стате, управлению БД и БКК
|
||||||
|
- Может банить кого угодно
|
||||||
|
- Может удалять чьи угодно аккаунты
|
||||||
|
- Может редактировать чужие посты
|
||||||
- Аватарки
|
- Аватарки
|
||||||
- Бан
|
- Бан
|
||||||
- Полное удаление
|
- Полное удаление
|
||||||
- Удаление всех постов
|
- Удаление всех постов
|
||||||
- Статистика по аккаунту
|
- Статистика по аккаунту
|
||||||
- Статистика по всем аккаунтам
|
- Статистика по всем аккаунтам
|
||||||
|
- Приглашения
|
||||||
|
- Регистрация по приглашению автоматически даёт роль "проверенный"
|
||||||
- Пост с картинкой
|
- Пост с картинкой
|
||||||
- Рекодирование пикчи в низкое разрешение для превью
|
- Рекодирование пикчи в низкое разрешение для превью
|
||||||
- Описание
|
- Описание
|
||||||
|
50
docs/DB.md
50
docs/DB.md
@ -22,17 +22,51 @@ mysql -u e949 -p
|
|||||||
|
|
||||||
```mysql
|
```mysql
|
||||||
USE e949;
|
USE e949;
|
||||||
|
CREATE TABLE users (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of user',
|
||||||
|
created_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'When account was created',
|
||||||
|
login VARCHAR(255) NOT NULL COMMENT 'User login',
|
||||||
|
email VARCHAR(255) NULL COMMENT 'User e-mail address',
|
||||||
|
password_hash BINARY(32) NOT NULL COMMENT 'User password hash',
|
||||||
|
salt VARCHAR(8) NOT NULL COMMENT 'User salt, used for password hash',
|
||||||
|
avatar_path VARCHAR(255) NULL COMMENT 'Path or URL to avatar picture',
|
||||||
|
role ENUM('newbie', 'verified', 'mod', 'admin') NOT NULL COMMENT 'Assigned role',
|
||||||
|
banned BOOL NOT NULL DEFAULT FALSE COMMENT 'If user is banned',
|
||||||
|
invite_id CHAR(32) NULL COMMENT 'Invite ID used for account registration'
|
||||||
|
);
|
||||||
CREATE TABLE posts (
|
CREATE TABLE posts (
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of post',
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of post',
|
||||||
author_id BIGINT UNSIGNED NOT NULL COMMENT 'Identifier of post author',
|
author_id INT UNSIGNED NOT NULL COMMENT 'Identifier of post author',
|
||||||
comment_section_id BIGINT UNSIGNED NULL COMMENT 'Identifier of post comment section',
|
comment_section_id INT UNSIGNED NULL COMMENT 'Identifier of post comment section',
|
||||||
posted_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'When post was published',
|
created_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'When post was published',
|
||||||
tags VARCHAR(2048) NOT NULL COMMENT 'Comma-delimited list of post tags',
|
tags VARCHAR(2048) NOT NULL COMMENT 'Comma-delimited list of post tags',
|
||||||
title VARCHAR(8192) NULL COMMENT 'Caption for the post',
|
title VARCHAR(8192) NULL COMMENT 'Caption for the post',
|
||||||
votes_up INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of positive reactions',
|
votes_up INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of positive reactions',
|
||||||
votes_down INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of negative reactions',
|
votes_down INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of negative reactions',
|
||||||
views BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of post views',
|
views INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Amount of post views',
|
||||||
pic_path VARCHAR(256) NOT NULL COMMENT 'Path or URL of picture',
|
pic_path VARCHAR(255) NOT NULL COMMENT 'Path or URL of picture',
|
||||||
preview_path VARCHAR(256) NULL COMMENT 'Path or URL of preview version of picture'
|
preview_path VARCHAR(255) NULL COMMENT 'Path or URL of preview version of picture'
|
||||||
);
|
comments_enabled BOOL NOT NULL COMMENT 'If comments are enabled',
|
||||||
|
edit_lock BOOL NOT NULL DEFAULT FALSE COMMENT 'If redaction of post is locked for anyone, except mods and admins'
|
||||||
|
);
|
||||||
|
CREATE TABLE comments (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of comment',
|
||||||
|
author_id INT UNSIGNED NOT NULL COMMENT 'Identifier of comment author',
|
||||||
|
comment_section_id INT UNSIGNED NOT NULL COMMENT 'Identifier of comment section to which the comment belongs',
|
||||||
|
created_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'When comment was published',
|
||||||
|
contents VARCHAR(8192) NOT NULL COMMENT 'Text of comment',
|
||||||
|
needs_check BOOL NOT NULL DEFAULT FALSE COMMENT 'If comment needs approval of moderation'
|
||||||
|
);
|
||||||
|
CREATE TABLE actions (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of action',
|
||||||
|
author_id INT UNSIGNED NULL COMMENT 'ID of user, who performed action',
|
||||||
|
created_at TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'When action was performed',
|
||||||
|
category ENUM('acc_mod', 'publ_mod', 'post', 'comment', 'admin', 'other') NOT NULL COMMENT 'Category of performed action: accounts/publications moderation, etc.',
|
||||||
|
description VARCHAR(8192) NOT NULL COMMENT 'Description of action'
|
||||||
|
);
|
||||||
|
CREATE TABLE invites (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique identifier of invite',
|
||||||
|
author_id INT UNSIGNED NULL COMMENT 'ID of user, who created invite',
|
||||||
|
uses_last SMALLINT UNSIGNED NOT NULL COMMENT 'Remaining uses of invite'
|
||||||
|
);
|
||||||
```
|
```
|
Loading…
Reference in New Issue
Block a user