Sobes.tech
Middle
18

Спроектируйте физическую модель данных для системы управления задачами. Выделите все физические таблицы с указанием первичных (PK) и внешних (FK) ключей. Модель должна покрывать все Use Case, которые вы выделили ранее.

Сұралған компаниялар
РТЛабс

AI-дан жауап

sobes.tech AI

Для системы управления задачами можно выделить следующие основные таблицы:

  1. Users — пользователи системы
  • PK: user_id
  • Поля: username, email, password_hash, created_at
  1. 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
  1. Projects — проекты, объединяющие задачи
  • PK: project_id
  • FK: owner_id (user_id из Users) — владелец проекта
  • Поля: name, description, created_at
  1. Task_Comments — комментарии к задачам
  • PK: comment_id
  • FK: task_id (из Tasks)
  • FK: author_id (user_id из Users)
  • Поля: content, created_at
  1. Task_History — история изменений задач
  • PK: history_id
  • FK: task_id (из Tasks)
  • FK: changed_by (user_id из Users)
  • Поля: change_type, old_value, new_value, changed_at
  1. 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
);