Middle
18
Спроектируйте физическую модель данных для системы управления задачами. Выделите все физические таблицы с указанием первичных (PK) и внешних (FK) ключей. Модель должна покрывать все Use Case, которые вы выделили ранее.
Сұралған компаниялар
РТЛабс
AI-дан жауап
sobes.tech AI
Для системы управления задачами можно выделить следующие основные таблицы:
- Users — пользователи системы
- PK: user_id
- Поля: username, email, password_hash, created_at
- Tasks — задачи
- PK: task_id
- FK: assigned_to (user_id из Users) — пользователь, которому назначена задача
- FK: created_by (user_id из Users) — пользователь, создавший задачу
- Поля: title, description, status, priority, due_date, created_at, updated_at
- Projects — проекты, объединяющие задачи
- PK: project_id
- FK: owner_id (user_id из Users) — владелец проекта
- Поля: name, description, created_at
- Task_Comments — комментарии к задачам
- PK: comment_id
- FK: task_id (из Tasks)
- FK: author_id (user_id из Users)
- Поля: content, created_at
- Task_History — история изменений задач
- PK: history_id
- FK: task_id (из Tasks)
- FK: changed_by (user_id из Users)
- Поля: change_type, old_value, new_value, changed_at
- Project_Members — участники проекта
- PK: (project_id, user_id)
- FK: project_id (из Projects)
- FK: user_id (из Users)
- Поля: role
Эта модель покрывает основные use case:
- Создание и назначение задач
- Управление проектами и участниками
- Комментирование задач
- Отслеживание истории изменений
Пример определения таблицы Tasks:
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
);