2.6 KiB
2.6 KiB
🗃️ SQL-schema
База данных: SQLite
Движок: aiosqlite
🧩 Структура базы данных
👤 Users
id:int— первичный ключname:char— логин пользователя (уникально)password:varchar— хешированный парольemail:char— email для отправки уведомлений (опционально)telegram_id:bigint— Telegram ID пользователя (опционально)avatar_path:varchar— путь до аватарки (опционально)
✅ Tasks
Связь: многие-к-одному с Users
id:int— первичный ключuser_id:int— внешний ключ наUsers.idtitle: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.iduser_id:int— внешний ключ наUsers.idcomment:text— содержимое комментария
📎 Attachments
Связь: многие-к-одному с Tasks
id:int— первичный ключtask_id:int— внешний ключ наTasks.idfile_path:varchar— путь до файлаuploaded_at:timestamp— время загрузки
🏷️ Tags
id:int— первичный ключname:char— название тега (уникально)
🔗 Task_Assignees
Связь: многие-ко-многим между Tasks и Tags
id:int— первичный ключtask_id:int— внешний ключ наTasks.idtag_id:int— внешний ключ наTags.id
