Sobes.tech
Назад к вопросам
Middle
5

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

Компании, где спрашивали
РТЛабс

Ответ от нейросети

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
);