update readme
This commit is contained in:
116
docs/schema.md
116
docs/schema.md
@@ -1,53 +1,75 @@
|
||||
# SQL-schema
|
||||
# 🗃️ SQL-schema
|
||||
|
||||
База данных SQLite, движок *aiosqlite*
|
||||
___
|
||||
База данных: **SQLite**
|
||||
Движок: *aiosqlite*
|
||||
|
||||
### Структура базы данных:
|
||||
#####
|
||||
#### Users
|
||||
---
|
||||
|
||||
id - int, первичный ключ \
|
||||
name - char, логин пользователя (уникально)\
|
||||
password - varchar, пароль пользователя \
|
||||
email - char, электронная почта для отправки уведомлений (не обязательно) \
|
||||
telegram_id - bigint, id пользователя в телеграм для отправки уведомлений (не обязательно) \
|
||||
avatar_path - varchar, путь до аватарки на диске (не обязательно)
|
||||
#####
|
||||
#### Tasks
|
||||
## 🧩 Структура базы данных
|
||||
|
||||
Отношение многие к одному Users.
|
||||
#####
|
||||
id - int, первичный ключ \
|
||||
user_id - int, relationship для Users.id \
|
||||
title - char, заголовок задачи \
|
||||
description - text, полное описание задачи (не обязательно) \
|
||||
due_date - date, день недели на которое будет назначена задача \
|
||||
status - enum, текущий статус задачи (open, closed, in progress, todo; по умолчанию open) \
|
||||
priority - enum, приоритетность задачи (low, medium, high, critical) \
|
||||
created_at - timestamp, время создания \
|
||||
time_spent - int, затраченное время (по умолчанию - 0)
|
||||
#####
|
||||
#### Attachements
|
||||
### 👤 Users
|
||||
|
||||
Отношение многие к одному Tasks.
|
||||
####
|
||||
id - int, первичный ключ \
|
||||
task_id - int, relationship для Tasks.id \
|
||||
file_path - varchar, путь до файла на диске \
|
||||
uploaded_at - timestamp
|
||||
#####
|
||||
#### Tags
|
||||
- `id`: `int` — первичный ключ
|
||||
- `name`: `char` — логин пользователя (**уникально**)
|
||||
- `password`: `varchar` — хешированный пароль
|
||||
- `email`: `char` — email для отправки уведомлений *(опционально)*
|
||||
- `telegram_id`: `bigint` — Telegram ID пользователя *(опционально)*
|
||||
- `avatar_path`: `varchar` — путь до аватарки *(опционально)*
|
||||
|
||||
id - int, первичный ключ \
|
||||
name - char, название тега (уникально)
|
||||
#####
|
||||
#### Task_Assignees
|
||||
|
||||
Отношение многие с многими Tasks - Tags
|
||||
#####
|
||||
id - int, первичный ключ \
|
||||
task_id - int, relationship для Tasks.id \
|
||||
tag_id - int, relationship для Tags.id
|
||||
___
|
||||

|
||||
---
|
||||
|
||||
### ✅ Tasks
|
||||
**Связь:** многие-к-одному с `Users`
|
||||
|
||||
- `id`: `int` — первичный ключ
|
||||
- `user_id`: `int` — внешний ключ на `Users.id`
|
||||
- `title`: `char` — заголовок задачи
|
||||
- `description`: `text` — полное описание *(опционально)*
|
||||
- `due_date`: `date` — назначенный день выполнения
|
||||
- `status`: `enum` — статус задачи (`open`, `closed`, `in_progress`, `todo`) *(по умолчанию: `open`)*
|
||||
- `priority`: `enum` — приоритет (`low`, `medium`, `high`, `critical`)
|
||||
- `created_at`: `timestamp` — дата и время создания
|
||||
- `time_spent`: `int` — затраченное время в минутах *(по умолчанию: `0`)*
|
||||
|
||||
---
|
||||
|
||||
### 💬 Comments
|
||||
**Связь:** многие-к-одному с `Tasks` и `Users`
|
||||
|
||||
- `id`: `int` — первичный ключ
|
||||
- `task_id`: `int` — внешний ключ на `Tasks.id`
|
||||
- `user_id`: `int` — внешний ключ на `Users.id`
|
||||
- `comment`: `text` — содержимое комментария
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 📎 Attachments
|
||||
**Связь:** многие-к-одному с `Tasks`
|
||||
|
||||
- `id`: `int` — первичный ключ
|
||||
- `task_id`: `int` — внешний ключ на `Tasks.id`
|
||||
- `file_path`: `varchar` — путь до файла
|
||||
- `uploaded_at`: `timestamp` — время загрузки
|
||||
|
||||
---
|
||||
|
||||
### 🏷️ Tags
|
||||
|
||||
- `id`: `int` — первичный ключ
|
||||
- `name`: `char` — название тега (**уникально**)
|
||||
|
||||
---
|
||||
|
||||
### 🔗 Task_Assignees
|
||||
**Связь:** многие-ко-многим между `Tasks` и `Tags`
|
||||
|
||||
- `id`: `int` — первичный ключ
|
||||
- `task_id`: `int` — внешний ключ на `Tasks.id`
|
||||
- `tag_id`: `int` — внешний ключ на `Tags.id`
|
||||
|
||||
---
|
||||
|
||||
## 🖼️ Визуальная схема
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user