Middle
Проектирайте физическа модел на данни за системата за управление на задачи. Изтъкнете всички физически таблици с посочване на първичните (PK) и външните (FK) ключове. Моделът трябва да покрива всички случаи на употреба, които сте идентифицирали по-рано.
sobes.tech AI
Отговор от AI
За системата за управление на задачи могат да се выделят следните основни таблици:
- Потребители — потребителите на системата
- PK: user_id
- Полета: username, email, password_hash, created_at
- Задачи — задачите
- PK: task_id
- FK: assigned_to (user_id от Таблица Потребители) — потребител, на когото е възложена задачата
- FK: created_by (user_id от Таблица Потребители) — потребител, който е създал задачата
- Полета: title, description, status, priority, due_date, created_at, updated_at
- Проекти — проекти, които групират задачи
- PK: project_id
- FK: owner_id (user_id от Таблица Потребители) — собственик на проекта
- Полета: name, description, created_at
- Коментари_к_задачите — коментари към задачите
- PK: comment_id
- FK: task_id (от Таблица Задачи)
- FK: author_id (user_id от Таблица Потребители)
- Полета: content, created_at
- История_на_задачите — история на промените в задачите
- PK: history_id
- FK: task_id (от Таблица Задачи)
- FK: changed_by (user_id от Таблица Потребители)
- Полета: change_type, old_value, new_value, changed_at
- Членове_на_проекта — участници в проекта
- PK: (project_id, user_id)
- FK: project_id (от Таблица Проекти)
- FK: user_id (от Таблица Потребители)
- Полета: role
Тази модел обхваща основните случаи на употреба:
- Създаване и назначаване на задачи
- Управление на проекти и участници
- Коментиране на задачи
- Следене на историята на промените
Пример за дефиниране на таблицата Задачи:
CREATE TABLE Tasks (
task_id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
status VARCHAR(50) NOT NULL,
priority INT,
due_date DATE,
assigned_to INT REFERENCES Users(user_id),
created_by INT REFERENCES Users(user_id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP
);